リモートでファイルを実行するためにsshコマンドを実行しようとしています。
ssh root@abc 'bash -s ' < filename.sh
filename.sh
しかし、他のファイルを参照する.
/コマンドがあり、動作しません。source
例:
filename.sh
:
#!/bin/bash
echo 'hello'
. parameter.sh
echo 'Hello'
このファイルをリモートで実行するにはどうすればよいですかfilename.sh
?乗り換えする必要はありませんかparameter.sh
?
答え1
一般的にはできませんが、この場合は次のようにできます。
{
cat parameter.sh
grep -xvF '. parameter.sh' filename.sh
} | ssh host bash -s
つまり、両方のファイルの内容を入力としてリモートデバイスに渡し、bash
不要.
になったコマンドを削除します。