如何在 sshpass 交互模式下访问环境变量
How to access environmental variables inside sshpass interactive mode
下面的 shell 脚本片段在 sshpass 外部打印环境变量,但不在内部。
#!/bin/bash
[[ = '' ]] && BRANCH="develop" || BRANCH=
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 传递给交互模式的任何选项,以便它可以读取本地系统中定义的环境变量?
我建议将 'ENDSSH'
替换为 ENDSSH
以允许 bash 解释您此处文档中的变量。
下面的 shell 脚本片段在 sshpass 外部打印环境变量,但不在内部。
#!/bin/bash
[[ = '' ]] && BRANCH="develop" || BRANCH=
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 传递给交互模式的任何选项,以便它可以读取本地系统中定义的环境变量?
我建议将 'ENDSSH'
替换为 ENDSSH
以允许 bash 解释您此处文档中的变量。