5 примеров bash-скриптов, которые помогут вам изучить программирование для Linux
Написание bash-скриптов — один из самых популярных и доступных способов программирования компьютеров с Linux. Эти простые примеры сценариев помогут вам понять процесс и познакомят вас с основами программирования на Bash.
Написание bash-скриптов — один из самых популярных и доступных способов программирования компьютеров с Linux. Эти простые примеры сценариев помогут вам понять процесс и познакомят вас с основами программирования на Bash.
1. Как напечатать Hello World в Bash
Например, Hello World — отличный способ изучить любой язык программирования, и Bash — не исключение.
Вот как напечатать «Hello World» с помощью Bash:
1. Откройте редактор и начните редактировать новый файл, содержащий следующие строки кода.
2. Первая строка Bash-скрипта всегда должна выглядеть так:
#!/бин/баш
Примечание. Команда shebang (#!/bin/bash) необходима, поскольку оболочка использует ее для принятия решения о том, как запустить сценарий. В этом случае используется интерпретатор Bash.
3. Любая строка, начинающаяся с символа #, является комментарием. Строка shebang — это особый случай, но для пояснения кода вы можете использовать отдельные комментарии. Добавьте комментарий к строке 2, например:
# Распечатываем текст из bash-скрипта
4. Вы можете вывести результат на стандартный вывод, используя команду echo, за которой следует значение, которое вы хотите напечатать. Добавьте следующую строку в строку 3:
эхо “Привет, мир”
5. Сохраните скрипт, желательно с расширением .sh, например hello_world.sh. Расширение не является обязательным, но является полезным соглашением, которому следует следовать.
6. Чтобы запустить сценарий, сделайте файл исполняемым. Используйте команду chmod («изменить режим») вместе с аргументом +x («исполняемый файл») и именем вашего сценария оболочки:
chmod +x hello_world.sh
7. Используйте эту команду для запуска сценария из его каталога:
./hello_world.sh
8. Когда скрипт запустится, он напечатает на вашем терминале текст «Hello World»:
2. Создайте каталог, прочитав ввод.
Из вашего сценария вы можете запустить любую программу, которую вы обычно запускаете в командной строке. Например, вы можете создать новый каталог из вашего скрипта с помощью команды mkdir.
1. Начните с той же строки, что и раньше:
#!/бин/баш
2. Предложите пользователю ввести имя папки, используя команду echo, как и раньше:
echo “Введите новое имя каталога:”
3. Используйте встроенную команду чтения для получения вводимых пользователем данных. Единственный аргумент называет переменную, в которой оболочка будет хранить вводимые данные:
читать новый каталог
4. Если вам нужно использовать значение, хранящееся в переменной, добавьте знак доллара ($) перед именем переменной. Вы можете передать содержимое входной переменной в качестве аргумента команде mkdir для создания нового каталога:
мкдир $newdir
5. Когда вы запустите этот сценарий, он предложит вам ввести данные. Введите допустимое имя папки, и вы увидите скрипт, создающий ее в вашей текущей папке:
3. Создайте каталог, используя аргументы командной строки.
В качестве альтернативы интерактивному чтению входных данных большинство команд Linux поддерживают аргументы. Вы можете предоставить аргумент при запуске программы, чтобы контролировать ее поведение.
В вашем сценарии вы можете использовать $1 для ссылки на специальную переменную, содержащую значение первого аргумента. $2 будет относиться ко второму аргументу и т. д.
1. Создайте каталог с помощью команды mkdir из предыдущего примера. Однако на этот раз давайте воспользуемся встроенной переменной $1:
#!/bin/bash mkdir $1
2. Запустите скрипт, на этот раз передав в качестве аргумента выбранное вами новое имя папки:
./arg_dir.sh Тест
Вы можете задаться вопросом, что произойдет, если вы запустите сценарий без каких-либо аргументов. Попробуйте и увидите; вы получите сообщение об ошибке, начиная с «usage:mkdir»:
Без каких-либо аргументов командной строки значение $1 будет пустым. Когда ваш сценарий вызывает mkdir, он не передает ему аргументы, и команда mkdir вернет эту ошибку. Чтобы избежать этого, вы можете проверить статус самостоятельно и выдать более дружелюбную ошибку:
1. Как всегда начнем с шебанга:
#!/бин/баш
2. Прежде чем вызывать mkdir, проверьте, что первый аргумент пуст (т.е. нет аргументов). Вы можете сделать это с помощью оператора if Bash, который запускает код на основе условия:
если (“$1” = “”); затем
3. Если первый аргумент пуст, выведите сообщение об ошибке и выйдите из сценария:
echo “Пожалуйста, укажите новое имя каталога в качестве первого аргумента” выход
4. Несколько странное ключевое слово «fi» («обратный if») сигнализирует об окончании оператора if в Bash:
фи
5. Теперь ваш сценарий может продолжать работу, как и раньше, для обработки случая, когда присутствуют аргументы:
мкдир $1
Когда вы запустите новую версию скрипта, вы получите уведомление, если забудете включить аргумент:
4. Удалить файлы с помощью функции Bash.
Если вы обнаружите, что повторяете один и тот же код, подумайте о том, чтобы обернуть его в функцию. Затем вы можете вызывать эту функцию, когда вам это понадобится.
Это пример функции для удаления определенного файла.
1. Начните с линии шебанга:
#!/бин/баш
2. Определите функцию, написав ее имя, затем пустые круглые скобки и команды внутри фигурных скобок:
del_file() { echo “удаление $1” rm $1 }
Затем вы можете вызвать функцию и передать ей имя удаляемого файла:
del_file test.txt
Когда вы вызываете функцию, она устанавливает значение $? особенно со статусом завершения последней запущенной команды. Статус выхода полезен для проверки ошибок; В этом примере вы можете проверить, была ли команда rm успешной или нет:
если ($? -ne 0); затем эхо «Извините, не удалось удалить файл» fi
5. Создайте базовый калькулятор для арифметических вычислений.
Последний пример иллюстрирует очень простой калькулятор. Запустив его, вы вводите два значения, а затем выбираете арифметическую операцию для их выполнения.
Вот код Calc.sh:
#!/bin/bash # Принимаем операнды в качестве входных данных echo “Введите первое число: ” read a echo “Введите второе число: ” read b # Тип ввода операции echo “Введите арифметическую операцию Выбор:” echo “1. Сложение ” echo ” 2. Вычитание” echo “3. Умножение” echo “4. Деление” read choice # операции калькулятора case $choice in 1) result=`echo $a + $b | до н.э` ;; 2) result=`echo $a – $b | до н.э` ;; 3) result=`echo $a * $b | до н.э` ;; 4) result=`echo “scale=2; $a / $b” | до н.э` ;; esac echo “Результат: $result”
Обратите внимание на использование случая. esac, что эквивалентно оператору переключения Bash из других языков. Он позволяет вам сравнить значение (в данном случае выбор переменной) с некоторым фиксированным значением и запустить соответствующий код.
Этот сценарий использует команду bc для выполнения каждого расчета.