gpt4 book ai didi

linux - bash脚本的奇怪行为

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

我有以下 script.sh:

#!/bin/bash
ssh server1 "echo hello from server1"
ssh server2 "echo hello from server2"

当作为 cat ./script.sh | 执行时bash 我明白了

hello from server1

当它作为 bash ./script.sh 执行时,我得到了

hello from server1

hello from server2

谁能解释一下区别? :)

最佳答案

在第一种情况下,cat 的输出连接到 bash 和 ssh 的标准输入。 ssh 从它的 stdin 读取,因此消耗了 cat 的其余输出,尽管在这种情况下结果被丢弃,因为远程命令本身从不读取 stdin。

在第二种情况下,bash 和 ssh 的标准输入是您的终端,bash 单独打开脚本文件,因此 ssh 看不到它。

关于linux - bash脚本的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6829750/

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