如何通过 ssh 执行命令并将值存储在变量中

Zuc*_*erg 1 linux ssh shell

我试图通过 ssh 从远程计算机获取 uname -r 的值,并在本地脚本流中使用该值。

kern_ver=uname -r
sshpass -p "$passwd" ssh -o StrictHostKeyChecking=no root@$c 'kern_ver=echo \$kern_ver'
Run Code Online (Sandbox Code Playgroud)

但看起来该值没有传递回本地脚本流。

che*_*ner 7

将命令存储在变量中cmd是可选的;您可以将命令硬编码为 的字符串参数ssh。关键是您只需通过在远程主机上运行命令ssh,并在本地主机上捕获其输出。

cmd="uname -r"
kern_ver=$(sshpass -p "$passwd" ssh -o StrictHostKeyChecking=no root@"$c" "$cmd")
Run Code Online (Sandbox Code Playgroud)