[英]Unable to use the variable for comparison in shell script
我无法使用变量var2。 这个脚本有什么问题?
#!/bin/bash
var1=$(---some shell cmd---)
echo $var1
read USER_ID
ssh $USER_ID@xx.xx.xx.xx '
var2=$(---some shell cmd---)
echo $var2
'
if [ "$var1" -eq "$var2" ]; then
echo "success\n"
fi
您的var2
仅存在于远程计算机上。 您需要在自己的盒子上捕获值。
var2=$(ssh $USER_ID@xx.xx.xx.xx 'some shell command')
编辑:只是为了让自己更清楚:
SSH命令的摘要是:
ssh user@host [command]
该command
完全在远程计算机上运行,它通过SSH从本地终端获取标准输入,并通过SSH将其stdout和stderr都打印到本地终端。
的情况下
ssh user@host 'var2=$(command)'
在远程计算机上创建了一个var2
变量,该变量还可以在远程计算机上捕获command
的标准输出。 在本地框上未创建var2
。
但是,如果在本地框上运行命令替换,通过在$()
包含整个SSH命令,它可以正常工作,那么远程命令的输出将捕获到本地变量中:
var2=$(ssh user@host 'command')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.