如何在bash中匹配连字符

时间:2016-05-17 03:52:24

标签: regex bash

我的部分脚本接受所有参数并查找任何标记选项。我试图将这些保存到我的阵列中,但它似乎并不匹配。我无法弄明白,我错过了什么?

#!/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[@]}

1 个答案:

答案 0 :(得分:3)

test命令([)不进行正则表达式匹配,bash关键字[[可以。

你需要:

[[ $i =~ ^- ]]

另请注意,您需要使用正则表达式运算符=~而不是等于运算符==