リモートSSHを実行するときに単一引用符を使用する

リモートSSHを実行するときに単一引用符を使用する

同様の質問に対するすべての答えを見ましたが、役に立つものが見つかりませんでした。両方のコマンドの構文に一重引用符が必要な場合は、リモートSSHコマンドで複数の一重引用符を使用すると、どのようにうまく機能できますか?

たとえば、

for host in $(<input_list.txt)
 do
  ssh $host 'echo $(hostname -s):$(ls -l /etc/rc.local | awk '{print $1,$6}')'
 done

「set -x」を使ってみましたが、出力はほとんど役に立たず、一重引用符と二重引用符をさまざまに組み合わせてみましたが、成功しませんでした。私はこれが不可能であることを信じることができません。

ベストアンサー1

この試み:)

for host in $(<input_list.txt); do
    ssh $host <<'EOF'
echo $(hostname -s):$(ls -l /etc/rc.local | awk '{print $1,$6}')
EOF
done

おすすめ記事