通常在unix系統上,可以通過將STDIN和/或STDERR重定向到文件或/ dev/null來禁止命令輸出。但是,如果您需要通過bash腳本中的STDIN將內容傳遞給管道命令?如何安全地禁止命令輸出?
下面的例子應該明確是什麼意思。不過這只是一個例子 - 我並不是在尋找針對這個命令的解決方案,而是針對這種情況。令人遺憾的是,在許多情況下,您希望在腳本中抑制輸出,但當命令沒有切換以其他方式提交信息時,需要通過STDIN傳遞內容。
我的「問題」是我編寫了一個函數來執行具有適當錯誤處理的命令,並且我希望將執行的命令產生的所有輸出重定向到日誌文件。
例題:
[18:25:35] [V] [email protected]:~# echo 'test' |read -p 'Test Output' TMP &>/dev/null
[18:25:36] [V] [email protected]:~# echo $TMP
[18:25:36] [V] [email protected]:~#
如何解決我的問題,任何想法?
'禁用了javascript -s lastpipe'或使用PROC ess替換即'read -p'測試輸出'TMP&gt;/dev/null <(echo'test')' – user000001
即使'shopt -s lastpipe && echo'test'| read -p'測試輸出'TMP&>/dev/null'留下一個空的'$ TMP'。令人高興的是,您的命令示例甚至可以在'&>/dev/null'中使用,因此它是該函數的一個選項。 – David
請注意,'lastpipe'選項僅適用於非交互式shell。如果你在終端上測試它不會工作 – user000001