您如何在Bash中找到发生错误的行号?
例
我用行号创建以下简单脚本,以解释我们需要什么。该脚本将从以下位置复制文件
cp $file1 $file2
cp $file3 $file4
当cp
命令之一失败时,该函数将退出并退出1。我们要向该功能添加功能,以便也用行号(例如8或12)打印错误。
这可能吗?
样例脚本
1 #!/bin/bash
2
3
4 function in_case_fail {
5 [[ $1 -ne 0 ]] && echo "fail on $2" && exit 1
6 }
7
8 cp $file1 $file2
9 in_case_fail $? "cp $file1 $file2"
10
11
12 cp $file3 $file4
13 in_case_fail $? "cp $file3 $file4"
14
相关- stackoverflow.com/questions/24398691/...
—
SLM
您可以使用
—
罗尔夫'18
set -x
和/或set -v
跟踪已执行的操作。并非完全符合您的要求,但也可能会有所帮助。