我正在编写一个 bash 脚本,我正在使用 for 循环来检查我的参数。
for var in "$@"
do
test_arg "$var"
done
这是我的 test_arg 函数
function test_arg {
[ -n "$1" ] || err "Empty argument"
[ -f "$1" ] || err "Argument '$1' is not a file"
[ -r "$1" ] || err "Data file '$1' is not readable"
[ -s "$1" ] || err "Data file '$1' is empty"
egrep -v '^-?([0-9]+|[0-9]*\.[0-9]+)$' "$1" && { echo "Bad data format in '$1'"; exit 1; }
}
然而,当这些条件中的任何一个不满足时,脚本只会写出“script.sh: line XX: err: command not found”。我不太确定测试,我是 bash 初学者。
非常感谢您的回答
最佳答案
您的代码依赖于名为 err
的函数。考虑这样定义它:
err() { echo "$*" >&2; exit 1; }
关于linux - Bash 脚本 - "err: command not found"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37102281/