我正在测试一个脚本,想要创建一个包含一些文本的小文件,因此我输入了以下内容但忘记在文件名中转义空格:
echo "bob">other name
当我这样做时ls
,它显示文件“其他”,当我这样做时cat other
,它显示的内容如下:
bob name
“名称”是如何进入文件中的?我记得我曾在某个地方看到过,你可以在命令的任何地方放置重定向。事实上,我刚刚测试了这个:
echo >other Some text in a file
而“文件中的某些文本”是“其他”的内容。
这个功能的用途是什么?
当然,我本来应该输入:
echo "bob">other\ name
答案1
这就是 bash 重定向的工作方式。
写这个:
echo "bob">other name
相当于这样:
echo "bob" name >other
重定向可以出现在行中的任何位置,V 形符号 ( >
) 仅适用于“其他”。
这允许人们灵活地组织他们的命令。如果这样做看起来更清楚,可以这样做:
>file.txt echo "one" "two" "three"
那么这取决于编写脚本或命令的人。