我遇到了多个人在运行需要端口转发的应用程序的问题。我想生成一个随机端口号,在传递该随机数的同时ssh到应用程序服务器,然后用sed
在几个不同的脚本中用此端口替换默认端口。
那么我有什么办法可以通过ssh传递bash变量,或者有更好的方法来实现此目的?
答案 0 :(得分:1)
如果知道要使用变量做什么,则可以将其传递给远程主机,并在同一行上运行命令:
ssh name@host "sed -i -e \"s/$myrandnumber/22/g\" file1 file2 file3"
$myvar
将在ssh
发生之前扩展,这意味着它将是您在原始计算机而不是远程计算机上设置的值。您可以在远程计算机上将其设置为变量:
ssh name@host "export remotevar=$myrandnumber; bash -i"
但是它仅对当前会话可用。如果您只想为将来的某个日期存储该变量,那么最好的选择是写入一个文件,该文件将在以后获取,即
ssh name@host "echo \"myvar=$myrandnumber\" >> /etc/environment"