【发布时间】:2023-11-21 15:41:02
【问题描述】:
我正在编写一个脚本,试图将 scp 文件传入和传出远程服务器,并希望在脚本中使用远程服务器变量,而不是将目录硬编码到脚本中,因为这将在不同的环境中使用不同的路径。
例如获取文件的硬编码版本...
scp user@remotehost:/userbase/filefolder/file1 .
但是让我们说远程主机上的“userbase”被设置为 $BASEHOME 变量。我知道一个标准
scp user@remotehost:$BASEHOME/filefolder/file1 .
当它试图在发送 scp 的主机上评估 $BASEHOME 时不起作用
我环顾四周,网上有人建议类似以下的方法可能有效
scp user@remotehost:$(ssh user@remotehost "echo \$BASEHOME")/filefolder/file1 .
但是这个错误 - 我尝试了 printf 而不是 echo、单引号和没有 \before $BASEHOME 但没有工作,出现类似于以下的错误(好像它没有拾取变量)
scp: /filefolder/file1: 没有这样的文件或目录
scp'ing 时是否可以使用远程变量?
谢谢!
【问题讨论】: