【问题标题】:How to access environmental variables inside sshpass interactive mode如何在 sshpass 交互模式下访问环境变量
【发布时间】:2022-01-26 15:56:27
【问题描述】:

下面的shell脚本sn-p在sshpass之外打印环境变量,但不在里面。

#!/bin/bash

[[ $1 = '' ]] && BRANCH="develop" || BRANCH=$1

echo $DESTINATION_FOLDER // prints from env

sshpass -p $PASSWORD ssh -o StrictHostKeyChecking=no $SERVER <<-'ENDSSH'

    echo $DESTINATION_FOLDER // doesn't print anything, output: empty

    exit
ENDSSH

我是否遗漏了通过 sshpass 传递给交互模式的任何选项,以便它可以读取本地系统中定义的环境变量?

【问题讨论】:

  • 请将您的脚本粘贴到shellcheck.net 并尝试实施那里提出的建议。
  • 环境变量通常不会通过 ssh 连接复制;你期待他们吗?
  • @GordonDavisson - 嗯,我只是好奇本地环境变量是否能够在登录后访问 sshpass 环境中?我不确定这是否受支持

标签: bash shell environment-variables heredoc sshpass


【解决方案1】:

我建议将'ENDSSH' 替换为ENDSSH 以允许bash 解释您here-document 中的变量。

见:https://en.wikipedia.org/wiki/Here_document#Unix_shells

【讨论】:

  • 成功了,谢谢
猜你喜欢
  • 2016-02-17
  • 1970-01-01
  • 1970-01-01
  • 2011-06-21
  • 1970-01-01
相关资源
最近更新 更多