スクリプトファイルを実行しようとしています。スクリプトファイルリモートコンピュータからユーザー @remote-01使用SSH。また、このsshコマンドの実行中にパラメータを渡す必要があります。したがって、次のパラメーターを使用する必要があります。スクリプトファイル。これは私が実行したいスクリプトです。
var1=True
var2=False
var3=True
sshpass -p 'pswd' ssh user@remote-01 "bash -s" < /home/user/sc.sh
私のsc.shは次のようになります。
if var1 -eq True; then
echo "Todo"
fi
if var2 -eq True; then
echo "Todo"
fi
if var3 -eq True; then
echo "Todo"
fi
..... so on
var1、var2、var3をパラメータとして渡し、上記のようにスクリプトで使用するにはどうすればよいですか?
答え1
この質問は以前に回答されました。質問。
ただし、目的のタスクは次のとおりです。
スクリプトファイル
#!/bin/bash
var1=$1
var2=$2
var3=$3
if $var1 -eq True; then
echo "Todo1"
fi
if $var2 -eq True; then
echo "Todo2"
fi
if $var3 -eq True; then
echo "Todo3"
fi
次に、次のコマンドを実行します。
ssh user@remote-01 'bash -s' < test.sh true true true
BASHのパラメーターは、$ 1のように$ numberとして参照できます。
答え2
数多くの試行錯誤を経てついに解決策が出ました。
var1="True"
var2="False"
var3="True"
sshpass -p 'pswd' ssh user@remote-01 "bash -s" < /home/user/sc.sh "$var1 $var2 $var3"
次のように使用する必要がありますスクリプトファイル
if [ "$1" = "True" ]; then
echo "Todo"
fi
if [ "$2" = "False" ]; then
echo "Todo"
fi
if [ "$3" = "True" ]; then
echo "Todo"
fi
答え3
ここでは、ssh
var1/var2/var3 変数をコマンドラインの環境変数として渡し、これらの変数はbash
m/c のコードで使用できます。remote
var1="$var1" var2="$var2" var3="$var3" \
sshpass -p 'pswd' ssh user@remote-01 "bash -s" < /home/user/sc.sh
内容はsc.sh
次のとおりです。
if [ "$var1" = True ]; then
echo "Todo"
fi
if [ "$var2" = True ]; then
echo "Todo"
fi
if [ "$var3" = True ]; then
echo "Todo"
fi
..... so on