gpt4 book ai didi

linux - 如何在 bash 中通过 ssh 将命令输出保存到变量中

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:37:43 24 4
gpt4 key购买 nike

我想将管道命令序列的输出保存到远程服务器上的变量中。我正在尝试通过 ssh 这样做:

ssh $host "kernel_ver=`sudo yum list kernel --showduplicates | grep 7.$os_rel | tr -s " " | cut -d" " -f2 | head -n1`; echo $kernel_ver"

我遇到了这个错误:

Error: No matching Packages to list
ssh: Could not resolve hostname kernel_ver= ; echo : Name or service not known

$os_rel 是我脚本中包含数字的变量。

我尝试了不同的语法,例如:“$( )”来捕获输出,但它仍然不起作用。

最佳答案

如果您使用双引号将所有内容括起来,那么反引号将由本地 shell 而不是远程 shell 计算。变量引用 $kernel_ver 也是如此。使用单引号禁用两者。

ssh $host 'kernel_ver=`sudo yum list kernel --showduplicates | grep 7.$os_rel | tr -s " " | cut -d" " -f2 | head -n1`; echo $kernel_ver'

如果 $os_rel 是您确实想要扩展的局部变量,那么您需要暂时保留单引号。

ssh $host 'kernel_ver=`sudo yum list kernel --showduplicates | grep 7.'"$os_rel"' | tr -s " " | cut -d" " -f2 | head -n1`; echo $kernel_ver'

关于linux - 如何在 bash 中通过 ssh 将命令输出保存到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46647428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com