我有2个shell脚本,名为script1.sh(在本地服务器上执行)和script2.sh(在远程服务器上执行,我将其传递给ssh命令)。我的script1.sh正在连接到unix服务器并执行script2.sh,如下所示。
declare RESULT=$(sshpass -p 'password' ssh username@1.2.3.4 "bash -s" < ./script2.sh )
和script2.sh进行一些计算并将一些变量返回给调用脚本,即script1.sh
#!/bin/sh
declare var1="fgte"
return var1
我想从在服务器上执行的script2.sh返回var1,并且应该向script1.sh返回一些值。我怎样才能做到这一点?我需要在script1.sh中读取var1的值。请帮帮我。
答案 0 :(得分:0)
最简单的方法是使用标准输出,并在script2.sh
中打印结果(使用echo
完成),并在script1.sh
中收集,例如< / p>
#!/bin/sh
result=$(script2.sh $var)
当您从子脚本返回多个值时,这变得更加复杂,您必须描绘/解析。然而,对于单个值,它是一种简单而实用的方法。
请注意,这与shell脚本退出代码不同,后者通常用于指示脚本是否成功返回。