如何将变量从一个shell脚本返回到另一个脚本

时间:2017-02-06 12:08:15

标签: bash shell unix

我有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的值。请帮帮我。

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用标准输出,并在script2.sh中打印结果(使用echo完成),并在script1.sh中收集,例如< / p>

#!/bin/sh
result=$(script2.sh $var)

当您从子脚本返回多个值时,这变得更加复杂,您必须描绘/解析。然而,对于单个值,它是一种简单而实用的方法。

请注意,这与shell脚本退出代码不同,后者通常用于指示脚本是否成功返回。