簡體   English   中英

在Bash腳本中設置-e:發現失敗位置?

[英]set -e in Bash scripts: discovering failure location?

眾所周知,我們應該使用set -e來使Bash腳本更健壯 然而,與此啟用,如果腳本失敗,有沒有什么辦法讓猛砸報告失敗腳本的哪一行? 目前,我不得不用大量的echo命令重新運行腳本。

我知道調試行號的最佳選擇是自定義set -x打印的“ + ”前綴以包含$LINENO

例如,在腳本的頂部:

PS4='($LINENO)+ '
set -x

(不完全是你要求的,但它很方便!)

您可以使用bash -x重新運行(或者在腳本中set -x以激活調試, set +x以便稍后停用它)

不確定行號,但如果將-e(或-u)與-v組合使用,則會在屏幕上打印最后一行時出現錯誤發生的行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM