当没有更多的连字符时,这段代码似乎没有停止......我做错了什么?
hortense$ if [[ $BFILE =~ ^[-]* ]] ; then BFILE=${BFILE:1} ; fi
hortense$ echo $BFILE
Atbari
hortense$ if [[ $BFILE =~ ^[-]* ]] ; then BFILE=${BFILE:1} ; fi
hortense$ echo $BFILE
tbari
答案 0 :(得分:1)
模式^[-]*
表示以0或更多-
开头。
即使根本没有-
,它也会匹配。
将*
更改为+
至少需要一个-
。
此外,您只需编写[-]
而不是-
。
全部放在一起:
if [[ $BFILE =~ ^-+ ]] ; then BFILE=${BFILE:1} ; fi
答案 1 :(得分:0)
当然你可以完全跳过正则表达式:
if [[ ${BFILE:0:1} == - ]] ...