私はBashスクリプトを使用してLinuxのリモートマシンにアクセスしています

私はBashスクリプトを使用してLinuxのリモートマシンにアクセスしています

ssh コマンドと pem ファイルを使用してリモート マシンにアクセスしています。コードは次のとおりです。

#!/bin/bash
ssh -i rijo.pem [email protected] <<EOF
sudo -s
var=`cat /opt/revsw-config/varnish/sites/rijotests4934567_revsw_net.json | egrep 'SERVER_NAME' | cut -b 19-44`
EOF

このスクリプトを使用すると、変数に値を保存できませんが、ターミナルでコマンドを実行すると機能します。スクリプトを実行すると、エラーが発生しますNo such file or directory found。これについて助けていただけませんか。

答え1

コマンド

cat /opt/revsw-config/varnish/sites/rijotests4934567_revsw_net.json | egrep 'SERVER_NAME' | cut -b 19-44

実行される地元でssh に送信される前に、マシン上で実行されます。これはおそらく、望んでいたことではないかもしれません。「here document」は変数とプロセスの置換を行うので、目的の結果を得るにはバックティックをエスケープする必要があります。

関連情報