gpt4 book ai didi

bash - Bash subshel​​l用ssh命令非常奇怪的行为

转载 作者:行者123 更新时间:2023-12-02 14:30:50 25 4
gpt4 key购买 nike

考虑脚本s2:

#!/bin/bash
ssh localhost tail

和脚本s1
#!/bin/bash
./s2 &
sleep 1000
wait

现在调用s1。它不会调用ssh命令。

如果您在s1中删除&,它将删除。
如果直接调用./s2,它将。
如果您输入控制台./s2,它将。

但是./s1无效。为什么呢

最佳答案

I don't know for me it does not call the ssh command. If i remove the sleep then it exits immediately.



确保它调用了 ssh命令。一定要!没有魔术。

假定仅仅因为删除 sleep时脚本立即退出而没有调用 ssh,这是一个很大的错误。
这个结论是不正确的。
可能还有其他原因来解释这种观察到的行为。

如果您想验证 ssh没有运行,
一种方法是查看系统日志。

该脚本很快退出(不是立即退出),因为 ssh很快退出了。 s2运行时,会收到空的 stdintail命令会消耗掉什么,什么也不输出,
因此 ssh shell终止而没有任何输出。就这样。

s2更改为此,以查看区别:
#!/bin/bash
ls / | ./s2 &
wait

这样 s2可以使用一个非空的 stdin
并且应该产生一些输出。

顺便说一句,由于有了 sleep 1000,所以从一开始就不需要 wait

关于bash - Bash subshel​​l用ssh命令非常奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47067478/

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