명령 매개변수에서 "\"를 이스케이프하는 방법

명령 매개변수에서 "\"를 이스케이프하는 방법

명령이 있어요

path/to/forticlientsslvpn_cli --server <host>:<port> --vpnuser testpass\101

스크립트를 실행하면 Linux는 testpass와 101 사이에 공백을 넣습니다. 스크립트에서 "testpass\101"을 사용자 이름으로 처리하고 싶습니다.

내 말이 이해되길 바라

답변1

이는 \이스케이프 문자 때문에 발생합니다.

참조를 사용하거나

path/to/forticlientsslvpn_cli --server <host>:<port> --vpnuser 'testpass\101'

또는 이스케이프된 백슬래시를 사용하세요.

path/to/forticlientsslvpn_cli --server <host>:<port> --vpnuser testpass\\101

답변2

완전성을 위해 bash쉘 및 ASCII 기반 시스템의 경우 따옴표만 사용됩니다.

  • 'testpass\101'(지금까지 최고)
  • testpass\\101
  • "testpass\101"또는 "testpass\\101"(후자가 더 좋습니다)
  • $'testpass\\101'
  • $'testpass\u005c101'또는 $'testpass\U0000005c101'(U+005C는 백슬래시의 유니코드 코드 포인트입니다)
  • $'testpass\x5c101'(여기서 0x5C는 ASCII로 인코딩된 바이트 값입니다 \)
  • $'testpass\134101'(8진수와 동일)

자세한 내용은 다음을 참조하세요.일반 문자처럼 특수 문자를 사용하는 방법은 무엇입니까?

관련 정보