Объем переменных в подстановке процесса

Обратите внимание, что coreutils - это программный пакет, разработанный проектом GNU для предоставления набора базовых утилит Unix для систем GNU. Вы найдете только coreutils echo из коробки в системах GNU ( Debian , trisquel , Cygwin , ] Fedora , CentOS ...). В других системах вы найдете другую реализацию (обычно с другим поведением, поскольку echo - одно из наименее переносимых приложений). FreeBSD будет иметь FreeBSD echo , большинство систем на базе Linux будут иметь busybox echo , AIX будет иметь AIX echo ...

В некоторых системах даже будет более одного (например, / bin / echo и / usr / ucb / echo в Solaris (последний является частью пакета, который теперь является необязательным в более поздних версиях Solaris, например, для Пакет утилит GNU, из которого вы получите / usr / gnu / bin / echo ) все с разными интерфейсами командной строки).

GNU coreutils был перенесен на большинство Unix-подобных (и даже не-Unix-подобных, таких как MS Windows) систем, поэтому вы сможете скомпилировать coreutils ' echo в большинстве систем, но, вероятно, это не то, что вы ищете.

Также обратите внимание, что вы обнаружите несовместимость между версиями coreutils echo (например, он не распознавал последовательности \ x41 с -e ]) и что на его поведение может влиять окружение (переменная POSIXLY_CORRECT ).

Теперь, чтобы запустить echo из файловой системы (найденной поиском по $ PATH ), как и для любой другой встроенной функции, обычно используется ] env :

env echo this is not the builtin echo

В zsh (без эмуляции других оболочек) вы также можете выполнять:

command echo ...

без необходимости выполнять дополнительную команду env .

Но я надеюсь, что приведенный выше текст проясняет, что это не поможет с точки зрения переносимости. Для портативности и надежности используйте printf вместо .

1
13.02.2016, 02:23
0 ответов

Теги

Похожие вопросы