bash Cookbook / bash: Сборник рецептов: 1.7 Using or Replacing Built-ins and External Commands / Используем или заменяем встроенные и сторонние команды

Оглавление
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

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

bbrodriges 26.12.08 в 09:24

0

Решение
Используйте команды type и which чтобы увидеть присутствует ли данная команда в системе и является ли она встроенной или сторонней.

bbrodriges 26.12.08 в 09:21

0

# type cd
cd is a shell builtin
# type awk
awk is /bin/awk
# which cd
/usr/bin/which: no cd in (/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/
sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin)
# which awk
/bin/awk

bbrodriges 26.12.08 в 09:21

0

# help help
help: help [-s] [pattern ...]
Display helpful information about builtin commands. If PATTERN is
specified, gives detailed help on all commands matching PATTERN,
otherwise a list of the builtins is printed. The -s option
restricts the output for each builtin command matching PATTERN to
a short usage synopsis.

bbrodriges 26.12.08 в 09:29

0

Когда вам надо переназначить встроенную команду, используйте ее для избежание циклов.
К примеру:

bbrodriges 26.12.08 в 09:27

0

cd ( ) {
builtin cd "$@"
echo "$OLDPWD --> $PWD"
}

bbrodriges 26.12.08 в 09:24

0

Смотрите также
• man which
• help help
• help builtin
• help command
• help enable
• help type
• Рецепт 19.4, “Назначение тестов вашему скриптов”
• “Встроенные переменные оболочки” в Приложении А

bbrodriges 26.12.08 в 09:28

0
Минутку...