【问题标题】:Problems to get a remote shell variable获取远程 shell 变量的问题
【发布时间】:2018-02-22 19:17:09
【问题描述】:

我在将 shell 脚本执行到远程 shell 时遇到问题。

我无法获得 $ARQ_END 的价值。

ssh -T user@MACHINE << 'EOSSH'

/app/work/leo/ReturnFileName.sh #This script returns a filename like: ADDRESS_BR_RECIFE_20170913.txt
ARQ_END="`/app/work/leo/ReturnFileName.sh`"
EOSSH

echo $ARQ_END #Returns nothing! Expected to return: ADDRESS_BR_RECIFE_20170913.txt

【问题讨论】:

    标签: shell ssh variable-assignment heredoc


    【解决方案1】:

    谢谢,成功了! 我使用了您发布的案例:

    ARQ_END=$(ssh user@MACHINE /app/work/leo/ReturnFileName.sh)
    echo "$ARQ_END"
    

    【讨论】:

      【解决方案2】:

      在子 shell 中设置变量在父 shell 中不可见。您需要直接在父 shell 中设置变量。这样做的方法是通过 ssh 会话将ReturnFileName.sh 的输出向上传递到父 shell 并在那里捕获它。

      ARQ_END=$(ssh user@MACHINE /app/work/leo/ReturnFileName.sh)
      echo "$ARQ_END"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-13
        • 1970-01-01
        相关资源
        最近更新 更多