1

嗨我有一个小脚本(脚本名称是:test1.sh),看起来像这样

PRG=$0
data=`expr $PRG : '.*\/.*'`
echo $data

当我运行它时,我看到输出为

10

我无法理解脚本第二行中写的正则表达式。那意味着什么?

4

2 回答 2

2

如果匹配成功 `:'
     表达式返回字符数
     匹配。

所以10很可能

./test1.sh
^^^^^^^^^^
|||||||||| \
123456789 10
于 2013-05-13T21:06:53.403 回答
1

/如果脚本 ( ) 的相对文件名中有 a ,则表达式返回非零值$0 in sh。如果像这样执行脚本:sh ../../script.sh,它会输出 15,这是“../../script.sh”的总长度。它与“../../”'.*\/匹配并script.sh与该.*部分匹配。

于 2013-05-13T21:14:07.387 回答