在執行shell腳本時,如何知道它正在執行的行號,是否寫過一個包裝器,我可以從shell腳本執行一個shell腳本,知道它正在執行哪個行號。當執行shell腳本時,如何知道它正在執行哪個行號,
14
A
回答
20
可以設置PS4
變量可使set -x
輸出到包括行號:
PS4=':${LINENO}+'
set -x
這將使行號的每一行,因爲它之前執行:
:4+command here
:5+other command
在PS4
的變量擴展之後,由於最後一個字符被重複顯示嵌套深度,因此在我的示例中使用一些印記字符(例如+
)很重要。也就是說,如果你調用一個函數,該函數調用命令,從set -x
輸出將像這樣稟報:
:3+++command run within a function called from a function
:8++command run within a function
:19+line after the function was called
如果多個文件涉及運行腳本,你可能要包括BASH_SOURCE
而不是隻LINENO
變量(假設這確實是一個bash腳本,而不是/bin/sh
- 確保您的腳本#!/bin/bash
開始!):
PS4=':${BASH_SOURCE}:${LINENO}+'
set -x
5
6
Bash有一個特殊變量$LINENO
它可以做你想做的。
#!/bin/bash
echo "$LINENO"
echo "$LINENO"
echo "$LINENO"
演示:
$ ./lineno
2
3
4
相關問題
- 1. AHK調試:如何知道當前正在執行的行號
- 2. 執行shell腳本
- 3. 執行shell腳本
- 4. 執行n行shell腳本
- 5. Shell腳本在執行時不會執行任何操作
- 6. 執行cursor.execute()時,如何知道查詢是否正確執行?
- 7. 如何執行這個shell腳本
- 8. 知道的執行時間,並使用Perl或shell腳本
- 9. shell腳本:執行一個長行
- 10. 如何知道cgi腳本是否正在執行?
- 11. 未知錯誤執行shell腳本
- 12. 如何在cygwin中執行shell腳本?
- 13. shell腳本:執行中的單引號
- 14. 如何知道哪些是正在執行的代碼行當接收
- 15. 在shell腳本中執行php腳本?
- 16. 如何知道某個文件當前是否正在執行?
- 17. 從shell腳本執行symbolicatecrash
- 18. 難執行shell腳本
- 19. 從shell執行R腳本
- 20. 未執行shell腳本
- 21. 從shell腳本執行SQL
- 22. 執行shell腳本程序
- 23. 從mac執行Shell腳本
- 24. 無法執行shell腳本
- 25. 如何執行shell腳本或可執行文件?
- 26. 如何檢查Python腳本的哪一行正在執行?
- 27. 如何知道Chrome何時執行外部腳本?
- 28. 如何使用java執行shell腳本
- 29. 如何通過python執行shell腳本
- 30. 如何從bash shell執行.py腳本
和'-xv'給出更多的信息。 – choroba