2017-02-06 301 views
0

我有两个shell脚本,称为script1.sh(在本地服务器上执行)和script2.sh(在远程服务器上执行,我将它传递给ssh命令)。我的script1.sh连接到unix服务器并执行script2.sh,如下所示。如何从一个shell脚本返回一个变量到另一个脚本

declare RESULT=$(sshpass -p 'password' ssh [email protected] "bash -s" < ./script2.sh) 

和script2.sh做一些计算和返回一些变量来调用脚本即script1.sh

#!/bin/sh 
declare var1="fgte" 
return var1 

我想从该服务器上执行script2.sh返回VAR1,应该返回一些值给script1.sh。我怎样才能做到这一点?我需要在script1.sh中读取var1的值。请帮帮我。

+0

您不能使用退货。使用'echo'。 – ceving

回答

0

最简单的方法是使用标准输出,并打印出结果你script2.sh(使用echo为你所做的),并将其收集在script1.sh例如

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

这变得更加复杂/当你从一个孩子的脚本返回多个值,你必须划定/解析。然而,对于单一的价值来说,这是一种简单而实用的方法。

请注意,这与shell脚本退出代码截然不同,传统上它用于指示脚本是否成功返回。

相关问题