gpt4 book ai didi

bash - 获取 shell 脚本错误的行号

转载 作者:行者123 更新时间:2023-11-29 09:23:14 24 4
gpt4 key购买 nike

当我运行脚本时出现这个错误

awk: fatal: cannot open file `text.txt' for reading (No such file or directory)

问题是脚本大约有 450 行,很难准确找到它在说什么

如果我能得到像这样的行号就好了

awk: fatal: cannot open file `text.txt' for reading (No such file or directory) at line ***

或者如果我设置 -x 那么就

awk: fatal: cannot open file `text.txt' for reading (No such file or directory)
Terminated at line ***

最佳答案

将行号添加到 bash -x 输出:

PS4='$LINENO:' bash -x  script

对于脚本相互调用的复杂情况,不仅知道行号而且知道文件名会很方便:

PS4='$BASH_SOURCE:$LINENO:' bash -x  script

PS4 可以根据需要进一步定制。例如:

PS4='File=$BASH_SOURCE: LineNo=$LINENO: ' bash -x  script

过滤输出

如果我们知道要查找的错误消息,我们可以过滤输出以获取该消息及其对应的文件名和行号:

$ PS4='File=$BASH_SOURCE: LineNo=$LINENO: ' bash -x  script 2>&1 | grep -B1 'awk: fatal:'
File=script: LineNo=3: awk 1 text.txt
awk: fatal: cannot open file `text.txt' for reading (No such file or directory)

关于bash - 获取 shell 脚本错误的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38235017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com