Искусство программирования на языке сценариев командной оболочки


Программирование на языке сценариев командной оболочки - стр. 238


echo "Попытка обращения к псевдониму \"ll\":" ll /usr/X11R6/bin/mk* #* Работает.

echo

directory=/usr/X11R6/bin/ prefix=mk* # Определить -- не будет ли проблем с шаблонами. echo "Переменные \"directory\" + \"prefix\" = $directory$prefix" echo

alias lll="ls -l $directory$prefix"

echo "Попытка обращения к псевдониму \"lll\":" lll # Список всех файлов в /usr/X11R6/bin, чьи имена начинаются с mk. # Псевдонимы могут работать с шаблонами.

TRUE=1

echo

if [ TRUE ] then alias rr="ls -l" echo "Попытка обращения к псевдониму \"rr\", созданному внутри if/then:" rr /usr/X11R6/bin/mk* #* В результате -- сообщение об ошибке! # К псевдонимам, созданным внутри составных инструкций, нельзя обратиться. echo "Однако, ранее созданный псевдоним остается работоспособным:" ll /usr/X11R6/bin/mk* fi

echo

count=0 while [ $count -lt 3 ] do alias rrr="ls -l" echo "Попытка обращения к псевдониму \"rrr\", созданному внутри цикла \"while\":" rrr /usr/X11R6/bin/mk* #* Так же возникает ошибка. # alias.sh: line 57: rrr: command not found let count+=1 done

echo; echo

alias xyz='cat $0' # Сценарий печатает себя самого. # Обратите внимание на "строгие" кавычки. xyz # Похоже работает, #+ хотя документация Bash утверждает, что такой псевдоним не должен работать. # # Steve Jacobson отметил, что #+ параметр "$0" интерпретируется непосредственно, во время объявления псевдонима.

exit 0

Команда unalias удаляет псевдоним, объявленный ранее .

Пример 23-2. unalias: Объявление и удаление псевдонимов

#!/bin/bash

shopt -s expand_aliases # Разрешить "разворачивание" псевдонимов.

alias llm='ls -al | more' llm

echo

unalias llm # Удалить псевдоним. llm # Сообщение об ошибке, т.к. команда 'llm' больше не распознается.

exit 0

bash$ ./unalias.sh

total 6 drwxrwxr-x 2 bozo bozo 3072 Feb 6 14:04 . drwxr-xr-x 40 bozo bozo 2048 Feb 6 14:04 .. -rwxr-xr-x 1 bozo bozo 199 Feb 6 14:04 unalias.sh




- Начало -  - Назад -  - Вперед -