scriptlist=`ls $directory_/fallback_* 2> /dev/null`
2>
部分命令的目的究竟是什麼? 我省略了它並運行命令,它工作正常。2>在Unix命令行中的含義是什麼?
而且,如果ls的輸出存儲在/ dev/null文件中,那麼變量scriptlist
將包含什麼內容。 當我執行代碼時,輸出在變量中,文件null
中沒有任何文件。如果我們刪除2
,那麼輸出是在文件而不是變量。 不知道這行代碼究竟在幹什麼?
scriptlist=`ls $directory_/fallback_* 2> /dev/null`
2>
部分命令的目的究竟是什麼? 我省略了它並運行命令,它工作正常。2>在Unix命令行中的含義是什麼?
而且,如果ls的輸出存儲在/ dev/null文件中,那麼變量scriptlist
將包含什麼內容。 當我執行代碼時,輸出在變量中,文件null
中沒有任何文件。如果我們刪除2
,那麼輸出是在文件而不是變量。 不知道這行代碼究竟在幹什麼?
任何想法究竟是什麼「2」是做在這裏
這裏2
是一個文件描述符引用STDERR
。
2> /dev/null
意味着STDERR
被重定向到空設備/dev/null
。
您提到的完整行將STDOUT
(忽略STDERR
)的輸出存儲到變量scriptlist
中,並將其返回ls $directory_/fallback_*
。
文件描述符2
表示標準錯誤。 (其他特殊文件描述符包括用於標準輸入的0
和用於標準輸出的1
)。
2> /dev/null
表示將標準錯誤重定向到/dev/null
。 /dev/null
是一種特殊的設備,會丟棄寫入它的所有內容。
放在一起,這行代碼存儲命令ls $directory_/fallback_* 2> /dev/null
INT變量scriptlist
(和標準錯誤被丟棄)的標準輸出。
scriptlist=`ls $directory_/fallback_* 2> /dev/null`
正如您已經封閉在反引號整行ls $directory_/fallback_* 2> /dev/null
, 的ls
命令的輸出被存儲在scriptlist
變量。
此外,2>
爲redirecting所述的stderr
輸出到/dev/null
(
無處
)。
'$ {script} $ * >> $ logfile 2>&1 dev/null' 這裏'2>&1 <'代表什麼? 回答:[在shell中,什麼是「2>&1」?](http://stackoverflow.com/questions/818255/in-the-shell-what-is-21) – Smith