hao*_*hao 2 shell echo io-redirection
当我执行时echo 123 > a.txt b.txt,我希望看到123写入两个文件,a.txt并且b.txt. 但实际结果是只创建了一个文件。内容123 b.txt写入名为 的文件中a.txt。为什么会出现这种情况?
要理解这一点需要两件事:
>仅适用于单个文件名。该文件名之后的任何内容都不是重定向的一部分;它是命令的附加参数echo。将这些事实放在一起,意味着这些命令都是等效的:
echo 123 b.txt >a.txt # traditional order
echo 123 >a.txt b.txt # your command
echo >a.txt 123 b.txt
>a.txt echo 123 b.txt
Run Code Online (Sandbox Code Playgroud)
它们都运行命令echo 123 b.txt,并将输出重定向到a.txt.
(我已将其压缩> a.txt为,>a.txt以便更容易查看>绑定的内容。)