web-dev-qa-db-ja.com

コマンドパラメータで「\」をエスケープする方法

コマンドがあります

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

スクリプトを実行すると、linuxによってtestpassと101の間にスペースが挿入されます。スクリプトに「testpass\101」をユーザー名として表示させたい

理にかなっているといい

1
Tlou Rammala

これは、\はエスケープ文字です。

引用を使用する

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

または、エスケープされたバックスラッシュを使用します。

path/to/forticlientsslvpn_cli --server <Host>:<port> --vpnuser testpass\\101
10
Panki

完全を期すために、bashシェルを使用し、ASCIIベースのシステムで、引用のみを使用します。

  • 'testpass\101'(断然最高)
  • testpass\\101
  • "testpass\101"または"testpass\\101"(後半)
  • $'testpass\\101'
  • $'testpass\u005c101'または$'testpass\U0000005c101'(U + 005CはバックスラッシュのUnicodeコードポイント)
  • $'testpass\x5c101'(0x5CはASCIIエンコーディングの\のバイト値です)
  • $'testpass\134101'(8進数でも同じ)

詳しくは、 特殊文字を通常の文字として使用する方法をご覧ください

7