gpt4 book ai didi

linux - Bash ssh for loop - 环境变量问题

转载 作者:太空宇宙 更新时间:2023-11-04 09:25:55 24 4
gpt4 key购买 nike

当使用 bash for 循环并通过 ssh 连接到多台机器时,主机名变量不会更新为我通过 ssh 连接到的机器的名称。

我在这里错过了什么?

“A”、“B”、“C”替换为实际机器名称,并在实际执行中去除语音标记。

for node in "A" "B" "C" ;
do
ssh $node "echo $node $HOSTNAME is alive" ;
done

在上面的示例中 $node 被正确输出,但 $HOSTNAME 是我从 SSH 连接的机器的名称。

最佳答案

使用单引号:

for node in "A" "B" "C" ;
do
ssh $node 'echo $HOSTNAME is alive';
done

如果需要传递$node,

ssh root@192.168.6.208 'echo ' $node ' $HOSTNAME is alive'

如果您使用双引号,那么您会将当前机器的 HOSTNAME 值传递给远程机器。

关于linux - Bash ssh for loop - 环境变量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36546234/

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