【问题标题】:how to return a variable from one shell script to another script如何将变量从一个 shell 脚本返回到另一个脚本
【发布时间】:2017-02-06 12:08:14
【问题描述】:

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

【问题讨论】:

  • 不能使用return。使用echo

标签: bash shell unix


【解决方案1】:

最简单的方法是使用标准输出,并在您的script2.sh 中打印出结果(如您所做的那样使用echo),并在script1.sh 中收集它,例如

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

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

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

【讨论】:

    猜你喜欢
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    • 2012-01-11
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多