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

Bash 如何将变量从一个shell脚本返回到另一个脚本,bash,shell,unix,Bash,Shell,Unix,我有两个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返回var1,它应该向script1.sh返

我有两个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返回var1,它应该向script1.sh返回一些值。我该怎么做?我需要读取script1.sh中var1的值。请帮帮我。

最简单的方法是使用stdout,并在
script2.sh
中打印结果(使用
echo
),然后在
script1.sh
中收集

#!/bin/sh
result=$(script2.sh $var)
当您从子脚本返回多个值时,这会变得更加复杂,您必须描述/解析。然而,对于单一价值而言,这是一种简单实用的方法


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

您不能使用返回。使用
echo
#!/bin/sh
result=$(script2.sh $var)