如何在 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 解释您此处文档中的变量。

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