Сценарий командной строки

Сценарий кома́ндной стрoки, или сценарий командной оболочки, (англ. shell script) — программа, выполняемая командной оболочкой операционной системы. Наиболее часто термин применяется к скриптам, написанным для Bourne shell — программной оболочки систем UNIX.[1]

В Unix

В Unix-подобных операционных системах нет требований к расширению имени файла, однако для скриптов командной оболочки выделено расширение .sh. Наиболее простые операции, выполняемые такими скриптами — вывод текста и базовые операции с файлами.

Для запуска скрипта необходимо ввести в эмулятор терминала с запущенным shell путь к файлу скрипта и аргументы (например, ./myscript.sh -switches—switch—file1 file2). Аргументы пишутся через пробел. Среди разработчиков скриптов существует соглашение давать пользователю возможность менять режим работы скрипта исключительно через аргументы, начинающиеся с дефиса: одинарный дефис для аргументов длиной в один символ (при этом после дефиса может быть указано сразу несколько ключей, например -abcd эквивалентно -a -b -c -d), или двойной дефис для аргументов длиной в два и более символов (например, --help, --switch-with-very-long-name). Двойной дефис, окружённый пробелами, указывает, что следующие за ним токены не являются аргументами.[2] Для упрощения следования этим соглашениям во многие UNIX-подобные системы включена программа getopt, упрощающая разбор аргументов.[3] Также обычной практикой является вывод справки при передаче аргумента --help. Еще один способ получить справку (для стандартных скриптов) — воспользоваться утилитой man.

Пример скрипта, конвертирующего изображения формата .jpg в формат .png:

#!/bin/bash
for jpg; do # использовать $jpg для каждого имени файла по очереди
    png="${jpg%.jpg}.png"                    # получить PNG-версию имени файла .jpg с .png
    echo converting "$jpg" ...               # сообщение для пользователя
    if convert "$jpg" jpg.to.png ; then      # использовать утилиту convert для создания временного PNG-файла
        mv jpg.to.png "$png"                 # если сработало, переименовать временный PNG-файл, дав требуемое имя
    else                                     # ...иначе напечатать сообщение об ошибке
        echo 'jpg2png: ошибка: результат сохранен в "jpg.to.png".' >&2
        exit 1
    fi                                       # конец "if"
done # конец "for"
echo "Успешно преобразовано" # сообщение об успехе
exit 0

В Windows

В Windows скрипты командной строки существуют в виде пакетных файлов и записываются в файл с расширением .bat, .cmd или .btm. Компиляции или другой специальной обработки файла для его запуска не требуется: достаточно написать его код и сохранить текстовый файл как пакетный.

Ссылки

  1. Kernighan, Brian W. & Pike, Rob (1984), 3. Using the Shell, The UNIX Programming Environment, Prentice Hall, Inc., с. 94, ISBN 0-13-937699-2
  2. UNIX conventions for command line arguments (Bruce Barnett's Bourne Shell Grymoire)
  3. Checking for optional arguments (Bruce Barnett's Bourne Shell Grymoire)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.