我的部分脚本接受所有参数并查找任何标记选项。我试图将这些保存到我的阵列中,但它似乎并不匹配。我无法弄明白,我错过了什么?
#!/bin/bash
ALL_PARAMS=( "$@" )
ARGUMENTS=()
OPTIONS=()
for i in ${ALL_PARAMS[@]}
do
if [ $i == ^- ]
then
ARGUMENTS+=($i)
else
OPTIONS+=($i)
fi
done
echo ${ARGUMENTS[@]}
echo ${OPTIONS[@]}
答案 0 :(得分:3)
test
命令([
)不进行正则表达式匹配,bash
关键字[[
可以。
你需要:
[[ $i =~ ^- ]]
另请注意,您需要使用正则表达式运算符=~
而不是等于运算符==
。