我正在尝试执行脚本文件脚本文件在远程机器上用户@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 中的参数可以通过 $number 引用,例如 $1
答案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
在这里,我们将变量 var1/var2/var3 作为环境变量在ssh
命令行上传递,然后这些变量可用于m/cbash
上的代码。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