1.7. Wykorzystywanie i zastępowanie poleceń wbudowanych i zewnętrznych

Problem

Chcemy zastąpić wbudowane polecenie własną funkcją lub poleceniem zewnętrznym. Chcemy też wiedzieć dokładnie, jakie instrukcje wykonuje skrypt (np. czy jest to program /bin/echo lub wbudowana instrukcja echo). Z podobnym problemem mamy do czynienia, gdy po utworzeniu nowego polecenia okazuje się, że jego nazwa pokrywa się z nazwą istniejącego polecenia zewnętrznego lub wbudowanego.

Rozwiązanie

Aby sprawdzić, czy dane polecenie jest dostępne oraz czy jest ono poleceniem zewnętrznym, czy wbudowanym, wystarczy wykorzystać instrukcje type i which.

# type cd
cd is shell builtin

# type awk
awk is /bin/awk

# which cd /usr/bin/which: no cd in (/opt/mono- 1.1.13.2/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/ ...

Get Bash. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.