bash.exeの引数のシェル変数をエスケープする

エスケープしないと

 PS> bash.exe -c 'ssh linux.sample.com echo $HOME'
 /home/win-user
  • WindowsのPowerShell上で上のコマンドを実行すると、
  • WSLの$HOMEが表示される

エスケープすると

 PS> bash.exe -c 'ssh linux.sample.com echo ''\$HOME'''
 /home/linux-user
  • WindowsのPowerShell上で上のコマンドを実行すると、
  • linux.sample.comの$HOMEが表示される
  • ポイントは2つあり、
  • 一つ目は、bash.exeの引数として渡すssh lin... の中で、PowerShellでシングルクォートの中でシングルクォートを使うには '' とシングルクォート2つにしてエスケープすること、
  • 二つ目は、 \$HOME とすることでWSL上のシェルで$HOMEが展開されることを防ぐこと

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2023-02-06 (月) 12:20:25