繁体   English   中英

无法在Shell脚本中使用变量进行比较

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM