Существуют различные реализации стандартной команды в системе. Как и в Solaris 10 и ранее, у вас есть / bin / sh
- это старая оболочка Bourne, а / usr / xpg4 / bin / sh
- это оболочка, совместимая с POSIX. Или в OSX у вас есть BSD sed при вызове sed
и GNU sed при вызове gsed
. Вы можете выбрать, какую реализацию вы хотите использовать в своем скрипте.
Так что проще изменить реализацию в вашем скрипте, когда вы используете переменную. Если вам нужен GNU sed:
SED=gsed
Если вы не используете переменную, вы должны заменить все вхождения sed
в свой сценарий. Хотя это можно сделать легко, это считается плохой практикой программирования.
Это описано на справочной странице вCONDITIONAL EXPRESSIONS
:
string
-n string
True if the length of string is non-zero.