if pgrep apache; then echo "oliver"; fi
如果命令pgrep apache
不爲空,則會回顯oliver
。我想做相反的事。如果命令pgrep apache
返回空字符串,請運行命令。如果shell命令爲空
0
A
回答
4
1
試着這樣做:
pgrep &>/dev/null apache || echo "foobar"
或:
if ! pgrep &>/dev/null apache; then echo "foobar"; fi
!
代表不
這不是基於命令的輸出,但如果命令whas true
或false
。
在shell,當命令的返回碼是0
,它被認爲是true
,如果大於0,這是false
。您可以檢查此返回碼與變量$?
,例如:
ls /path/to/inexistant/file
echo $?
+0
但我的名字是'oliver'! – onassar 2013-02-18 19:16:41
+1
請勿*使用'&>'。語法是不明確的:''bash'會把它看成和'>/dev/null 2>&1'一樣,而'dash'會把它當作'&>'(它會在後臺運行進程,然後截斷'/ dev/null') – 2013-02-19 00:13:16
1
我不確定的背景下,但假設你想做些什麼特定的進程是或不是找到。
bash-3.2$ pgrep -q bash && echo "bash was found"
bash was found
bash-3.2$ pgrep -q XXXbash || echo "XXXbash was NOT was found"
XXXbash was NOT was found
相關問題
- 1. Shell命令和空格
- 2. Powershell命令如果文件夾爲空
- 3. 如果在運行shell命令條件
- 4. 變量作爲shell命令
- 5. Prosyst Shell命令
- 6. 在shell命令
- 7. PHP shell命令
- 8. shell命令
- 9. Shell命令$
- 10. Karaf shell命令
- 11. Hbase shell命令
- 12. shell命令
- 13. 如何將shell命令的結果替換爲另一個shell命令的輸入
- 14. sh shell code - 檢索命令結果
- 15. 在adb shell獲取命令結果
- 16. 獲取Shell命令的結果C
- 17. 存儲shell命令的結果
- 18. 擊:如果(命令)|(命令)
- 19. 如何組合shell命令
- 20. 如何從shell命令
- 21. 運行shell命令
- 22. 限制shell命令
- 23. 運行shell命令
- 24. Linux Shell - Grep命令
- 25. Unix Shell - Zip命令
- 26. 命令執行shell
- 27. Hbase放shell命令
- 28. shell腳本/命令
- 29. 在ansible shell命令
- 30. Shell命令不笨
回聲不會發生,因爲'pgrep apache'不是空的。而是因爲'pgrep'成功返回而被執行。在這種情況下,成功的命令和產生某些輸出的命令是等同的,但這是混淆的常見原因。 – 2013-02-19 00:15:34