我正在尝试执行以下代码,但是当我尝试在if语句中使用函数时,-bash: [: too many arguments
出现错误。为什么会这样呢?
先感谢您!
notContainsElement () {
local e match="$1"
shift
for e; do [[ "$e" == "$match" ]] && return 1; done
return 0
}
list=( "pears" "apples" "bananas" "oranges" )
blacklist=( "oranges" "apples" )
docheck=1
for fruit in "${list[@]}"
do
if [ notContainsElement "$fruit" "${blacklist[@]}" -a $docheck = 1 ]
then
echo $fruit
fi
done
1
使用shellcheck.net(或其脱机版本)。它找到答案中提到的问题,尽管解释不够详尽,并且没有解决方案。
—
大卫·佛斯特