这个函数f()
应该非常简单,但它的工作方式令人费解:
f() {
a=(cyan red green blue orange violet)
shopt -s extglob
echo 1: -${a[@]/!($1)}-
echo 2: -${a[@]/!($1)/}-
echo 3: -${a[@]/!("$1")/}-
echo 4: -"${a[@]/!($1)/}"-
echo 5: -${a[@]/!($1)/x}-
}
echo ORANGE
f orange # ends in e like blue
echo YELLOW
f yellow
输出是(请同时注意空白/间距):
ORANGE
1: - e -
2: - e -
3: - e -
4: - e -
5: -x x x x xe x-
YELLOW
1: - -
2: - -
3: - -
4: - -
5: -x x x x x x-
为什么只搜索单词的最后一个字符?!(在这种情况e
下orange
)
期望的输出orange
不仅仅是e
注意:我也希望在一些我看到一个空白的地方看不到空白..