如何在sshpass交互模式中访问环境变量



下面的shell脚本片段打印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传递到交互模式的任何选项,以便它可以读取本地系统中定义的环境变量?

我建议用ENDSSH替换'ENDSSH',以允许bash解释here文档中的变量。

请参阅:https://en.wikipedia.org/wiki/Here_document#Unix_shells

最新更新