Урок 19: Скрипты в Shell
Команда tar из предыдущего урока работает — но когда она запускается в cron, вы не можете узнать, успешно ли она выполнилась. Мы оборачиваем её в bash-скрипт: #!/bin/bash в первой строке указывает, какой интерпретатор использовать. DEST=/backups определяет переменную; $DEST использует её. chmod +x b
Скрипт — это как записанный рецепт: #!/bin/bash говорит «готовь это с помощью bash», а chmod +x даёт разрешение готовить. DEST=/backups сохраняет адрес на записке, а $DEST читает эту записку. $? — это проба на вкус в конце: 0 означает, что вышло вкусно.
- shebang (#!/bin/bash)
- Первая строка скрипта — указывает, какой интерпретатор его запускает. #! обозначает это, /bin/bash — путь к bash. Без shebang операционная система угадывает интерпретатор.
- переменная в bash
- NAME=value определяет (без пробелов). $NAME читает значение. "$NAME" в двойных кавычках защищает от word splitting, если значение содержит пробелы.
- код выхода ($?)
- Код, который возвращает каждая команда: 0 = успех, любое другое значение = неудача. $? хранит код последней команды. Должен быть прочитан сразу же, прежде чем другая команда перезапишет его.
- chmod +x
- Добавляет право на выполнение скрипту. Без него ./script.sh возвращает 'Permission denied'. chmod +x script.sh включает ./script.sh; bash script.sh работает и без chmod +x.