0
リモートサーバー上のbashスクリプトを使用して複数のコマンドを実行しようとしています。具体的には、リモートサーバ上で実行されるforループが問題を引き起こしています。文字をエスケープする方法や$()を使う方法がわからないからです。リモートサーバー上のループ用Bash
以下はコードです。
ssh (user)@(server) <<EOF
sudo su - (username)
whoami
'for e in $(`ls -lrt /usr/jboss/jbosseap | awk '{print $9}' | grep multichannel`);
do
echo "$e";
done'
明白な理由から、ユーザー名とサーバー名を削除してください。 forループに集中してください。私はループのコマンドライン($()なし)のためにそれを実行すると、うまく動作します。リモートコールでそれをどのようにネストするか分からない。
ありがとうございました。
bashがあなたの '$(..)'と '$ 9'と' $ e'を食べないようにするには、ここでdocターミネーター( 'ssh user @ host <<" EOF ")を引用してください。次に、そのまま実行したいコードを置くことができます(ここで行ったように、一重引用符でエスケープしないでください) –