在 Solaris 上,看来我需要单引号“匹配行首”表达式:
> sh
$ echo offset 0.000000 2>&1 | grep ^offset | tail -1
offset: not found
$ Usage: grep [-c|-l|-q] [-bhinsvwx] pattern_list [file ...]
grep [-c|-l|-q] [-bhinsvwx] [-e pattern_list]... [-f pattern_file]... [file...]
grep -E [-c|-l|-q] [-bhinsvx] pattern_list [file ...]
grep -E [-c|-l|-q] [-bhinsvx] [-e pattern_list]... [-f pattern_file]... [file...]
grep -F [-c|-l|-q] [-bhinsvx] pattern_list [file ...]
grep -F [-c|-l|-q] [-bhinsvx] [-e pattern_list]... [-f pattern_file]... [file...]
我可以通过单引号正则表达式很容易地解决这个问题:
> sh
$ echo offset 0.000000 2>&1 | grep '^offset'| tail -1
offset 0.000000
我在自己使用 bash 的命令行中没有看到这一点,但它显示在脚本中,例如使用 system() 的 perl 脚本。
那个默认的 Solaris shell 是 Bourne shell 吗?^(插入符号)在默认 Solaris shell 的 shell 语言中还有什么其他含义?