2
在Solaris上,看來我需要單引號表達式「匹配行的開頭」:^(caret)在solaris(bourne?)sh中的特殊含義
> sh
$ echo offset 0.000000 2>&1 | grep '^offset'| tail -1
offset 0.000000
我不:
> 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...]
我可以用單引號的正則表達式解決這個問題很輕鬆了在我使用bash的自己的命令行中沒有看到它,但是它顯示在腳本中,例如使用system()的perl腳本。
缺省的Solaris shell是Bourne shell嗎? ^(插入符號)在shell語言中對於默認的Solaris shell有什麼其他含義?
顯然,向後兼容從1973年的[Unix版本4湯普森殼牌](https://en.wikipedia.org/wiki/Thompson_shell)。 – alanc
好去知道!感謝分享。 – shellter