【发布时间】: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