我正在编写一个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:第XX行:错误:未找到命令"。我对测试不太确定,我是一名打击者。
非常感谢您的回答
答案 0 :(得分:2)
您的代码取决于名为err
的函数。考虑如下定义它:
err() { echo "$*" >&2; exit 1; }