Shell “与”的区别是什么&书信电报;inp somecommand“;及;somecommand<;“inp”是什么;?

Shell “与”的区别是什么&书信电报;inp somecommand“;及;somecommand<;“inp”是什么;?,shell,io-redirection,Shell,Io Redirection,在任何Unix shell上,这两种形式都是否,它们之间没有区别。请参阅,它不区分简单命令之前或之后的重定向。(对于复合命令,规范只要求shell在末尾支持重定向) 简单命令中任意点的重定向不是POSIX sh规范需要支持的东西;但是,在诸如bash之类的shell中,它们在语法上也是等价的。如果somecommand是一个简单的命令,则没有区别 如果是循环,则在命令前面带有重定向的表单是语法错误: bash: syntax error near unexpected token `do' 例

在任何Unix shell上,这两种形式都是
否,它们之间没有区别。请参阅,它不区分简单命令之前或之后的重定向。(对于复合命令,规范只要求shell在末尾支持重定向)


简单命令中任意点的重定向不是POSIX sh规范需要支持的东西;但是,在诸如bash之类的shell中,它们在语法上也是等价的。

如果
somecommand
是一个简单的命令,则没有区别

如果是循环,则在命令前面带有重定向的表单是语法错误:

bash: syntax error near unexpected token `do'
例如,这:

while read line ; do echo "$line" ; done < /etc/motd
给出一个语法错误:

bash: syntax error near unexpected token `do'
这是给bash的;其他shell可能会有不同的行为。

不仅仅是bash——POSIX清楚地表明,复合命令只需要在最后支持重定向。