Аргументи і параметри команд UNIX

Більшість програм оболонки інтерпретують аргументи, тому коли команда запускається, можна вказати, наприклад, імена фай лов і параметри (хоча деякі команди, наприклад nu, успішно працюють і без аргументів)

Припустимо, що потрібно створити програму cx, яка змінювала б код прав доступу до файлу на виконуваний, таким чином,

$ cx  nu

являє собою коротку запис

$ chmod  +x nu

Вам вже відомо майже все, що для цього необхідно Потрібен файл з імям cx, який містив би

chmod  +x імя5файла

Єдине, про що ще не говорилося, так це про те, яким чином повідомити команду cx імя файлу, якщо при кожному запуску cx воно буде різним

Коли оболонка виконує командний файл, кожне входження $ 1 замінюється на перший аргумент, кожне входження $ 2 – на другий аргумент, і так до $ 9 Тому, якщо файл cx містить

chmod  +x

то коли запускається команда

$ cx  nu

подоболочка замінює $ 1 на перший аргумент – nu

Давайте подивимося на всю послідовність операцій:

$ echo chmod + x $ 1> cx Спочатку створитиcx

$ sh cx cx Зробити файл cx  виконуваним

$ echo echo Hi, there > Hello Створити тестову програму

$ hello Випробувати її

hello: cannot  execute

$ cx hello Зробити її виконуваної

$ hello Спробувати ще раз

Hi,  there                                       Працює

$ mv cx / usr / you / bin Встановити cx

$ rm hello Очистити

$

Зверніть увагу, що було введено

$ sh  cx  cx

У точності те ж саме автоматично б зробила оболонка, якби команда cx вже була виконуваної і було б введено

$ cx  cx

Що робити, якщо необхідна наявність декількох аргументів, наприклад, щоб програма типу cx могла обробляти відразу декілька файлів Перший, «сокирний» спосіб, полягає в тому, щоб задати для програми оболонки девять аргументів:

chmod  +x

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*