在我的Bash脚本中,我有一个函数来返回0或1(true或false),以供后续的main函数作为条件判断。
function1 () {
if [[ "${1}" =~ "^ ...some regexp... $" ]] ; then
return 1
else
return 0
fi
}
然后在我的主函数中:
main () {
for arg in ${@} ; do
if [ function1 ${arg} ] ; then
...
elif [ ... ] ; then
...
fi
done
}
然而,当我运行这个脚本时,总是会出现错误消息:
[: function1: 期望一元运算符
我该如何修复它?
for arg in "$@"
,或更简单的for arg; do ...
。 - glenn jackmanpattern='^ ...some regexp... $'; if [[ $1 =~ $pattern ]]
。请注意,在双方括号内,不需要引用变量,正如Glenn所说,正则表达式(变量)永远不应该被引用。 - Dennis Williamson