シェル スクリプトを作成していて、サーバーに SSH で接続し、いくつかのアクションを実行してから終了する必要があります。
これを行うには、次のようなコードを使用しています。
ssh -t username@server '
cd uploads/; \
tar -xvzf torrent.tar.gz; \
'
ただし、次のように変数を使用する必要があります。
DIR="uploads/";
ssh -t username@server '
cd $DIR; \
tar -xvzf torrent.tar.gz; \
'
cd
SSH接続が確立されるまで明らかに実行されておらず、それまでに$DIR
変数がないため、これは機能していないようです(私の推測)。しかし、変数を使用する方法はありますか?
おそらくより良い質問は、SSH 接続が確立された後にアクションを実行するようにスクリプトをレイアウトするより良い方法はありますか? アポストロフィをエスケープして注意する必要があり、ある時点で、実際に SSH 接続内から別のサーバーに SSH 接続しています。これは醜いコードです!
編集: ' の代わりに " を使用すると、変数が機能することを読んでください。しかし、私の質問はまだフォーマットについて立っていますか?