Q
結果
2
A
回答
-1
rm -rf "My Folder" && echo "Done" || echo "Error!"
你可以閱讀更多關於創建管道in bash manual序列
-1
在慶典(和其他類似的貝殼)的?
環境變量給你的最後執行的命令的退出代碼。所以,你可以這樣做:
#!/bin/sh
rm -rf "My Folder"
echo $?
UPDATE
如果一旦rm
命令已被執行的目錄不存在(因爲它已被成功刪除或因爲它不存在時,命令被執行)腳本將打印0.如果目錄存在(這將意味着該命令無法刪除它),那麼腳本將打印一個不是0的退出代碼。如果我理解正確的問題,這正是請求行爲。如果不是,請糾正我。
-2
以前的答案是錯誤的:當方法不存在時,rm
不會以錯誤代碼> 0退出。
相反,我建議使用:
dir='/path/to/dir'
if [[ -d $dir ]]; then
rm -rf "$dir"
fi
如果你想rm
返回一個狀態,刪除-f
標誌。
在Linux Mint的(該目錄不存在)例:
$ rm -rf /tmp/sdfghjklm
$ echo $?
0
$ rm -r /tmp/sdfghjklm
$ echo $?
1
0
如果你問的是一般情況下,你的問題的標題的建議,你可以用sh -x scriptname
運行腳本,看看有什麼它在做。將診斷輸出寫入腳本本身也很常見,並使用選項進行控制。
#!/bin/sh
verbose=false
case $1 in -v | --verbose)
verbose=true
shift ;;
esac
say() {
$verbose || return
echo "$0: [email protected]" >&2
}
say "Removing $dir ..."
rm -rf "$dir" || say "Failed."
如果您運行此腳本不帶任何選項,它會悄悄運行,像一個乖巧的Unix應該實用工具。如果您使用-v
選項運行它,它將打印一些診斷到標準錯誤。
相關問題
- 1. 結果=結果+ [i]?
- 2. MySQL的結果reorganaize結果
- 3. 總結PHP結果
- 4. SQL:結合結果
- 5. 結果
- 6. 結果
- 7. 在結果集中排序MySQL結果
- 8. 搜索結果(顯示更多結果)
- 9. 根據一列結果顯示結果
- 10. 結果集內的結果集
- 11. 棒SQL結果到一個結果
- 12. 查詢結果回顯結果四次
- 13. get_browser()結果爲空/未知結果
- 14. FOSElasticaBundle結果與Doctrine結果不同嗎?
- 15. SQL結果列值作爲結果
- 16. 什麼是distanceBetween結果的結果聯
- 17. 查詢結果不同於SSRS結果
- 18. 查詢結果爲空結果
- 19. 查找結果不顯示結果
- 20. 搜索框結果== JSON結果
- 21. CouchDB:include_docs查看特殊結果的結果
- 22. 檢索IEnumerable結果值的結果
- 23. 排除mysql查詢結果的結果
- 24. 結果集功能'結果集關閉'
- 25. 競品結果或搜索結果
- 26. 限制結果,而不是組結果
- 27. 從GeoPlugin緩存IP結果PHP結果
- 28. inbetween搜索結果和結果
- 29. lucene查詢結果x%內的結果
- 30. Teradata結果中的第n項結果
'rm -rf'總是返回true –
@sputnick除非失敗。 (例如,如果用戶沒有刪除目錄的權限。) –
儘管說這是一系列管道在技術上是正確的,但它只是一系列簡單的命令。 (一個簡單的命令是一個不包含管道的普通管道。) –