Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

shift - Получение доступа ко многим аргументам

Но что происходит, когда мы даем программе большое количество аргументов, например:


изображение

[я @ linuxbox ~] $ позит-парам *


Количество аргументов: 82

$ 0 = / home / me / bin / posit-param

$ 1 = address.ldif

$ 2 = корзина

$ 3 = bookmarks.html

4 доллара = debian-500-i386-netinst.iso

5 $ = debian-500-i386-netinst.jigdo

$ 6 = debian-500-i386-netinst.template

$ 7 = debian-cd_info.tar.gz


$ 8 = Рабочий стол

$ 9 = dirlist-bin.txt

$ 8 = Рабочий стол

$ 9 = dirlist-bin.txt


В этом примере системы подстановочный знак * расширяется до 82 аргументов. Как мы можем обработать такое количество? Оболочка предоставляет способ, хотя и неуклюжий, для этого. В сдвиг команда заставляет все параметры «опускаться на один вниз» каждый раз при выполнении. Фактически, используя сдвиг, можно обойтись всего одним параметром (помимо $0, который никогда не меняется):



#! / Bin / Баш


# posit-param2: скрипт для отображения всех аргументов count = 1

а [[$ # -gt 0]]; делать

echo "Аргумент $ count = $ 1" count = $ ((count + 1))

смена сделана

#! / Bin / Баш


# posit-param2: скрипт для отображения всех аргументов count = 1

а [[$ # -gt 0]]; делать

echo "Аргумент $ count = $ 1" count = $ ((count + 1))

смена сделана


Каждый раз сдвиг выполняется, значение $2 перемещен в $1, значение $3 перемещен в $2 и так далее. Значение $# также уменьшается на единицу.

В posit-param2 В программе мы создаем цикл, который оценивает количество оставшихся аргументов и продолжается до тех пор, пока существует хотя бы один. Отображаем текущий аргумент, увеличиваем переменную считать с каждой итерацией цикла, чтобы обеспечить текущий счет количества обработанных аргументов и, наконец, выполнить сдвиг загрузить

$ 1 со следующим аргументом. Вот программа в действии:


[я @ linuxbox ~] $ posit-param2 abcd

Аргумент 1 = a Аргумент 2 = b Аргумент 3 = c Аргумент 4 = d

[я @ linuxbox ~] $ posit-param2 abcd

Аргумент 1 = a Аргумент 2 = b Аргумент 3 = c Аргумент 4 = d


Лучшие облачные вычисления для ОС в OnWorks: