Shell
迴聲>>不工作
這就是我要逐步實現的目標:
- ls
- 然後反轉它的輸出
- 然後在這個文件的最後添加一個新行
因此,我製作了以下一行腳本,但它給出了錯誤
(ls | tac | echo >>) > ./foobar
我可以通過拆分為多個命令來做到這一點,但我試圖在一個命令中做到這一點。
我很困惑,因為
echo >> ./foobar
在文件末尾插入了一個新行。那為什麼我的程式碼行不起作用?為什麼
echo >>
不在文件描述符末尾添加新行而是給出錯誤?我在這裡做錯了什麼?
告訴外殼程序將
>>
命令輸出附加到符號後面的文件名(因此您至少必須在右括號之前添加一個名稱)。對於您想做的事情,您可以執行以下操作:
ls | tac > ./foobar; echo >>./foobar
或者:
(ls | tac; echo ) >./foobar
兩者都達到了相同的結果。
要達到指定的結果,可以執行以下操作:
echo -e "`ls | tac`\n" > ./foobar
這樣, 的輸出
ls
通過管道傳輸tac
。結果包含在echo
命令中,轉義字元解釋echo
將添加一個新行。然後可以將標準輸出重定向到文件。我不相信可以將標準輸出通過管道傳輸到 echo 中。