Заголовки bash-скриптів

Серпень 11th, 2008

Будь-який bash-скрипт починається з магічного напису #!/bin/bash. Ті, хто уважно читав підручники, можуть навіть пригадати, що магічними насправді є лише символи #!, а все, що за ними — шлях до інтерпретатору. Але мало кому відомо, що в якості останньго зовсім не обов’язково використовувати одну з багатьох різновидностей sh. Залежно від змісту файлу можна вказати /bin/perl або /usr/bin/awk. А можна взагалі обійтися без вказування інтерпретатору. (ще…)

Категорії: bash | Теґи:, , | Кометарів немає

Вилучити файл –somefile

Липень 28th, 2008

Таке цікаве завдання було запропоновано якось на російському лінуксфорумі. Виконати базові операції (передивитися, редагувати, видалити) над файлом з назвою --help. Всі розуміють, що просто так вказати cat --help не вийде — програма сприйме ім’я файлу як опцію. Що ж робити?

Насправді, все просто. Є два способи вирішення проблеми, і обидва вони вказані в man rm. По-перше, можна вказати повну адресу файлу: rm ./--help. По-друге, менш відомий спосіб, можна вказати -- перед аргументом: rm -- --help.

Другий спосіб буде працювати не завжди, а лише у програмах, які для обробки переданого командного рядка використовують функцію getopt. Втім, так роблять майже всі програми, окрім найдавніших. Очевидно, через те, що сама фукнція з’явилась не так давно (за юніксовими мірками ;) ). Такі старі та поважні програми, як tar, дозволяють собі мати власні правила задання опцій. Та ж сама команда tar -xvf --help має цілком нормально виконатись.

Категорії: linux | Теґи:, | Кометарів немає