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 シェルは Bourne シェルですか? デフォルトの Solaris シェルのシェル言語で、^ (キャレット) にはどのような追加の意味がありますか?