使用 here-string 登录 shell 并使用 sudo 命令时,如何从文件中读取环境变量?

How environment variables can be read from a file when going into a login shell with here-string and using the sudo command?

我正在尝试编写一个旨在登录到远程服务器、加载环境变量并打印其中之一的小脚本。 (在实际脚本中,将使用读取的参数而不是 echo。为了简单起见,我只使用 echo。)

脚本的结构和我尝试的命令如下但不幸的是none成功了:

ssh -i lightsail.pem ubuntu@production <<< '
  sudo echo $TEST_PARAMETER
  sudo sh -c "~/Environment/environment-variables.sh && echo $TEST_PARAMETER"
  sudo bash -c "~/Environment/environment-variables.sh && echo $TEST_PARAMETER"
  sudo bash -c "source ~/Environment/environment-variables.sh && echo $TEST_PARAMETER"
  sudo bash <<< "source ~/Environment/environment-variables.sh && echo $TEST_PARAMETER"
';

使用 here-string 并使用 sudo 命令登录 shell 时,如何从文件中读取环境变量?

如果您的环境变量设置为 ubuntu 而不是 root 您将需要使用 sudo -E

-E 向安全策略表明用户希望保留其现有环境变量