Bashスクリプトからいくつかのコマンドを実行したいと思います。
一重引用符を使用すると、変数は値ではなくリテラルとして扱われます。
たとえば、これは二重引用符をエスケープして、すべてを混乱させることなく引用符と二重引用符の混合を処理する方法とは異なりますls "$SOME_DIR"
。たとえば、次のことを確認する方法は次のとおりです。 ls '$SOME_DIR'
ssh server.com "mkdir \"/foo/bar/"$final"\""
命令が長くなるほど読みにくくなり、破損しやすくなるため、これらのすべての脱出をどのように回避できますか?
ベストアンサー1
複数回使用した後の最も簡単な解決策は次heredocs
のherestrings
とおりです。
ssh server.com "mkdir '/foo/bar/$final'"
はい、のように一重引用符にもかかわらず、bash
変数の置換は引き続き発生します。$final
echo "test'$final'"
$final
注:@muruが指摘したように、単一引用符が含まれている場合は機能しません。