コマンドがあります。
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はバックスラッシュのUnicodeコードポイントです)$'testpass\x5c101'
(ここで0x5CはASCIIでエンコードされたバイト値です\
)$'testpass\134101'
(8進数と同じ)
詳細については、次を参照してください。通常の文字のように特殊文字を使用する方法は?