bash 脚本中的新功能,必须编写一个函数来检查第一个给定参数是否为空。如果为空则输出错误信息,否则成功。
使用返回语句和变量 $?输出应该是这样的:
./test.sh
-> 脚本失败
; ./test.sh hallo
-> 脚本正常
。
谢谢!
这是我现在拥有的:
check_parameter() {
var=$1
if [ -z ${var} ]; then
return 1
else
return 0
fi
if [ $?== 0 ]; then
echo " OK. "
else
echo " failed. "
fi
}
check_parameter $1
似乎 ìf [ -z $var ]
或 ìf [ -z ${var} ]
不起作用。
最佳答案
注意变量可以被定义,但是有一个空值;也就是说,您可以区分 check_parameter
和 check_parameter ""
。
也就是说,您可以使用单行参数扩展来处理。
check_parameter () {
: ${1?Parameter required}
}
或
check_parameter () {
: ${1:?Non-empty parameter required}
}
在这两种情况下,调用 check_parameter
的退出状态都是 1 并显示给定的错误消息。只有在第二种情况下,check_parameter ""
才会失败并显示错误消息。
但请注意,如果在交互式 shell 中执行,构造将导致函数简单地返回。在非交互式 shell 中,函数返回后 shell 本身将立即退出,因此它与显式检查并在未设置变量时使用 return
略有不同。
关于linux - Bash 脚本检查第一个参数是否存在使用返回语句和变量 $?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58237605/