返回值其他那个$?来自ssh session

xoq*_*xoq 3 ssh shell

如何返回$以外的值?来自ssh会话

例如:

x=5
echo "$x"
ssh -o StrictHostKeyChecking=no root@hostname "x=10"
echo "$x"
Run Code Online (Sandbox Code Playgroud)

这将打印

5
5
Run Code Online (Sandbox Code Playgroud)

但我需要新的价值

5
10
Run Code Online (Sandbox Code Playgroud)

pio*_*kuc 13

试试这个:

x=5 
echo "$x"
x=$(ssh -o StrictHostKeyChecking=no root@hostname 'x=10; echo $x')
echo "$x"
Run Code Online (Sandbox Code Playgroud)

这里发生的是捕获远程执行的命令的输出,并将该输出分配给您的本地变量x.请注意,我使用单引号而不是双引号来引用远程命令:'x=10; echo $x'.$x在双引号的字符串中,x在被发送到远程主机之前将被本地的值替换,因此您将通过远程命令打印并分配给您的本地x.