如何在ssh命令中传递变量的值

0 ssh command-line

如果我在本地系统中使用内容制作了 test.sh。

!/bin/bash
cd /Documents/test/sandbox 
LatLong=java -jar test2.jar cape_town
ssh root@target 'cd /some path && ./DriveSimulator $LatLong'
Run Code Online (Sandbox Code Playgroud)

如何获取要在 ssh 命令中传递的LatLong值?因为上面的方法现在给出了一个分段错误。

小智 7

LatLong是在本地系统/会话中定义的,但您试图在远程系统上使用它,就好像它是在那里定义的一样。尝试用双引号替换单引号。另外我建议将变量赋值放在引号中

#!/bin/bash
cd /Documents/test/sandbox 
LatLong=$(java -jar test2.jar cape_town)
echo here is LatLong $LatLong
ssh root@target "cd /some path && ./DriveSimulator $LatLong"
Run Code Online (Sandbox Code Playgroud)

这样,变量LatLong将在将其发送到远程主机之前进行插值