This question already has answers here:
Difference between sh and bash
(12 个回答)
4年前关闭。
在终端(bash)中,以下工作正常:
但如果我这样做:
我得到
你能解释一下原因吗?
顺便说一句,我的总体目标是在 shell 脚本中编写此命令:
但它不起作用,原因似乎是上述问题。
使用您的示例,您可以简单地执行以下操作:
不需要高级 shell 或进程替换。
(12 个回答)
4年前关闭。
在终端(bash)中,以下工作正常:
cat <(echo "hello")
但如果我这样做:
sh -c 'cat <(echo "hello")'
我得到
sh: 1: Syntax error: "(" unexpected
你能解释一下原因吗?
顺便说一句,我的总体目标是在 shell 脚本中编写此命令:
watch -n 1 'cat <(iptables -L INPUT) <(iptables -L FORWARD)'
但它不起作用,原因似乎是上述问题。
最佳答案
sh
通常是 dash
而不是 bash
(参见 man sh
)。dash
不做进程替换,只做 POSIX 的东西。
你需要做:
bash -c 'cat <(echo "hello")'
ksh
& zsh
也可以进行进程替换。使用您的示例,您可以简单地执行以下操作:
watch -n 1 'iptables -L INPUT; iptables -L FORWARD'
不需要高级 shell 或进程替换。
关于bash - sh -c 和进程替换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39069179/
10-16 02:21