【发布时间】:2016-10-21 15:20:45
【问题描述】:
在用户控制台我有bash:
$ echo $SHELL
/bin/bash
$ bash --version
GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu)
我在 test.sh 文件中有代码:
$ cat test.sh
aaa='---aa-aa---'
echo "${aaa}"
echo 'does not work...'
# trim "-"
echo ${aaa/+(-)}
echo ${aaa%%+(-)}
echo 'works for one symbol...'
echo ${aaa%-}
echo ${aaa/-}
最后两行工作正常,但前两行。
$ bash test.sh
---aa-aa---
does not work...
---aa-aa---
---aa-aa---
works for one symbol...
---aa-aa--
--aa-aa---
同时,如果你想让这个控制台工作:
$ aaa='---aa-aa---'
$ echo ${aaa/+(-)}
aa-aa---
$ echo ${aaa%%+(-)}
---aa-aa
那么,为什么它在脚本中不起作用?
【问题讨论】:
-
试图决定是否将其作为stackoverflow.com/questions/26726264/… 的副本关闭,或者以相反的方式进行。 @tripleee,你有意见吗?
-
...实际上,在审查时,我认为这个问题的实例比另一个问题更清楚地提出,足以否定对方的时间优势(首先被问到)..