2015-12-06 80 views
0

我需要改變終端命令改變終端命令沒有返回

stat file.txt | echo "File exists" 

因此,如果文件不存在,只有當它存在回聲部分我沒有得到任何輸出。最簡單的方法是什麼?

謝謝!

回答

1

你大概的意思是:

stat file > /dev/null 2>&1 && echo "File exists" 
+0

看起來不錯,但你能解釋一下嗎,尤其是dev/null/part? :) – Applecow

+0

>/dev/null 2>&1注意,不會發生stat狀態的命令輸出。當前面的命令返回「success」作爲退出碼(即0) – Ctx

2

echo忽略它的標準輸入,所以它並不重要,如果有的話,stat生產什麼。另外,您不需要簡單地運行stat來檢查文件是否存在。

[ -e file.txt ] && echo "File exists" 

如果[命令有一個零退出狀態(當存在file.txt的出現),那麼echo被執行。否則,echo不會執行。

+0

謝謝,這已經很好了,&&後的部分被執行。但我需要它與stat命令鏈接。 – Applecow

+1

爲什麼?你不是特定於'stat'的東西。它產生的任何輸出都被在管道右側創建的子shell放棄。 – chepner