忽略重定向後的任何參數還是會產生意想不到的後果?重定向後的參數能做什麼嗎?
我很驚訝地發現,我在我的bash腳本中犯的一個錯字完全沒有區別,因爲它是在重定向之後指定的。例如。我預計它會抱怨這樣的事情
./foo.sh > foo2.log whoops I made a typo
但它不會引發任何錯誤。我要補充一個分號真正得到它作爲一個命令和錯誤運行,像
./foo.sh > foo2.log; whoops I made a typo
讓我感到震驚甚至更多,被認爲Linux沒有重定向後 例如放棄
./foo.sh > foo2.log whoops I made a typo > command_is_still_going.log
絕對是罰款和command_is_still_going.log仍會創建
是「哎呦我做了一個錯字」完全忽略說法呢,還是導致一些不必要的行爲?因爲我傾向於使用這個很多。
潛入[bash文檔](https://www.gnu.org/software/bash/manual/html_node/)。做你的建議是不好的味道,所以人們從來沒有在實踐中這樣做 –
這似乎是一個容易回答的問題。如果運行'echo one> log two three',那麼'log'文件的結果內容是什麼?這些額外的論據是否被忽視? – larsks
謝謝@larsks在我發佈後意識到。所以看起來答案是肯定的,如果你的bash腳本引用輸入參數,這很可能會導致意想不到的事情發生。 –