我有一個包含類似下面的線bash
腳本:這個unix shell代碼爲什麼這樣工作?
echo 2 * 3 > 5 is a valid inequality
我試圖理解爲什麼我沒有得到以下發送到屏幕的echo
輸出。
相反,什麼是輸出到屏幕,並有成爲一個新的文件,名爲5
,含2
,所有文件在我的當前目錄中的名稱和字符串3 is a valid inequality
。
爲什麼會發生這種情況?有人可以解釋嗎?順便說一下,我正在Linux系統中運行它。
我有一個包含類似下面的線bash
腳本:這個unix shell代碼爲什麼這樣工作?
echo 2 * 3 > 5 is a valid inequality
我試圖理解爲什麼我沒有得到以下發送到屏幕的echo
輸出。
相反,什麼是輸出到屏幕,並有成爲一個新的文件,名爲5
,含2
,所有文件在我的當前目錄中的名稱和字符串3 is a valid inequality
。
爲什麼會發生這種情況?有人可以解釋嗎?順便說一下,我正在Linux系統中運行它。
shell首先處理輸入/輸出重定向,如> 5
,並將相關文件句柄附加到它打開的文件(本例中爲5
)。
它還將*
擴展到當前目錄中的匹配文件中。所以你最終是:
echo 2 <<ALL YOUR FILES>> is a valid inequality
其中輸出發送到您以前打開的文件。
如果你想在文本字符串輸出,你需要告訴shell不要做正常的解釋:
echo '2 * 3 > 5 is a valid inequality'
等什麼?爲什麼downvote?這個答案絕對正確! – 2013-07-29 05:54:35
明白了。創建了一些文件,如2xyz,2abc。該代碼將名稱爲類型2 <
我建議你閱讀** ** **的**手冊的殼在嘗試使用它之前。一個人不會因爲「我不知道我不應該」而用電鋸刮鬍子...... – 2013-07-29 04:44:26
爲自己說話,@ H2CO3。我寧願活在邊緣。可以這麼說。 –
明白了。創建了一些文件,如2xyz,2abc。該代碼將名稱爲類型2 <>的所有文件名以及數字3放入(使用>)一個名爲5的(自動創建的)文件中。它還將字符串 - 「是有效的不等式」添加到文件5中。 –
bashboy