5 Примеров Сценариев Bash для Изучения Программирования на Linux

Категория: линукс

Хотите научиться программированию на Linux? Освойте Bash.

Сценарии Bash - это один из самых популярных и доступных способов программирования вашего компьютера под управлением Linux. Эти простые примеры сценариев помогут вам понять процесс и ознакомят вас с основами программирования на Bash.

  1. Как вывести "Hello World" в Bash

Пример "Hello World" - отличный способ изучить любой язык программирования, и Bash не является исключением.

Вот как вывести "Hello World" с помощью Bash:

Откройте текстовый редактор и начните редактировать новый файл, содержащий следующие строки кода.

Первая строка вашего сценария Bash всегда должна выглядеть так:

#!/bin/bash

Команда Shebang (#!/bin/bash) необходима, так как оболочка использует ее для определения того, как выполнить сценарий. В данном случае используется интерпретатор Bash.

Любая строка, начинающаяся с символа #, является комментарием. Shebang-строка - это особый случай, но вы можете использовать свои собственные комментарии для объяснения вашего кода. Добавьте комментарий на строке 2, например:

# Вывод текста из сценария Bash

Вы можете выводить текст в стандартный вывод с помощью команды echo, за которой следует значение, которое вы хотите вывести. Добавьте следующее на строке 3:

echo "Hello World"

Сохраните сценарий, предпочтительно с расширением .sh, например, hello_world.sh. Расширение не является обязательным, но это соглашение, которое полезно придерживаться.

Чтобы запустить сценарий, сделайте файл исполняемым. Используйте команду chmod ("change mode") вместе с аргументом +x ("исполняемый") и именем вашего сценария:

chmod +x hello_world.sh

Используйте эту команду, чтобы запустить сценарий из его каталога:

./hello_world.sh

Когда сценарий выполняется, он выведет текст "Hello World" в ваш терминал.

  1. Создание каталога по вводу пользователя

Из ваших сценариев вы можете выполнять любую программу, которую вы обычно запускаете в командной строке. Например, вы можете создать новый каталог из своего сценария с использованием команды mkdir.

Начнем с той же строки shebang, что и раньше:

#!/bin/bash

Пригласите пользователя ввести имя каталога, используя команду echo, как и раньше:

echo "Введите новое имя каталога:"

Используйте встроенную команду read для получения ввода пользователя. Единственный аргумент называет переменную, в которой оболочка сохранит ввод:

read newdir

Когда вам нужно использовать значение, сохраненное в переменной, предварите ее имя символом доллара ($). Вы можете передавать содержимое переменной ввода в качестве аргумента команде mkdir, чтобы создать новый каталог:

mkdir $newdir

Когда вы запускаете этот сценарий, он запросит ввод. Введите допустимое имя каталога, и вы увидите, что сценарий создает его в текущем каталоге.

  1. Создание каталога с использованием аргументов командной строки

Как альтернативу интерактивному вводу, большинство команд Linux поддерживают аргументы. Вы можете предоставить аргумент при запуске программы, чтобы управлять ее поведением.

В пределах вашего сценария вы можете использовать $1 для обращения к специальной переменной, содержащей значение первого аргумента. $2 будет ссылаться на второй аргумент и так далее.

Создайте каталог с использованием команды mkdir из предыдущего примера. Однако на этот раз используйте встроенную переменную $1:

#!/bin/bash
mkdir $1

Запустите сценарий, передаваемый выбранным вами именем нового каталога в качестве аргумента:

./arg_dir.sh Test

Возможно, вы задаетесь вопросом, что произойдет, если вы запустите сценарий, не предоставив аргумент вообще. Попробуйте и посмотрите; вы должны получить сообщение об ошибке, начинающееся с "usage: mkdir":

Без аргументов командной строки значение $1 будет пустым. Когда ваш сценарий вызывает mkdir, он не будет передавать ему аргумент, и команда mkdir вернет эту ошибку. Чтобы избежать этого, вы можете проверить условие самостоятельно и предоставить более дружелюбное сообщение об ошибке:

#!/bin/bash
if [ "$1" = "" ]; then
echo "Пожалуйста, укажите новое имя каталога в качестве первого аргумента"
exit
fi

Немного странное ключевое слово "fi" ("if" наоборот) сигнализирует конец оператора if в Bash:

fi

Теперь ваш сценарий может продолжиться, как и раньше, чтобы обработать случай, когда аргумент присутствует:

mkdir $1

Когда вы запускаете эту новую версию сценария, вы получите сообщение, если забудете включить аргумент.

  1. Удаление файла с использованием функции Bash

Если вы оказываетесь повторяющим тот же код, рассмотрите возможность упаковки его в функцию. Вы можете вызвать эту функцию в любое время.

Вот пример функции, которая удаляет заданный файл.

Начнем с строки shebang:

#!/bin/bash

Определите функцию, написав ее имя, за которым следуют пустые скобки и команды внутри фигурных скобок:

del_file() {
echo "удаляется $1"
rm $1
}

Затем вы можете вызвать функцию и передать ей имя файла для удаления:

del_file test.txt

Когда вы вызываете функцию, она устанавливает специальное значение $? с кодом выхода последней выполненной ею команды. Код выхода полезен для проверки ошибок; в этом примере вы можете проверить, успешно ли выполнена команда rm:

if [ $? -ne 0 ]; then
echo "Извините, не удалось удалить файл"
fi
  1. Создание простого калькулятора для арифметических вычислений

Этот последний пример демонстрирует очень простой калькулятор. Когда вы его запускаете, вы вводите два значения, а затем выбираете арифметическую операцию, которую нужно выполнить с ними.

Вот код для 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 | bc`
;;

2)
result=`echo $a - $b | bc`
;;

3)
result=`echo $a \* $b | bc`
;;

4)
result=`echo "scale=2; $a / $b" | bc`
;;
esac

echo "Результат: $result"

Обратите внимание на использование case ... esac, который является эквивалентом оператора switch из других языков. Он позволяет вам тестировать значение - в данном случае переменную choice - относительно нескольких фиксированных значений и выполнять соответствующий код.

Этот сценарий использует команду bc для выполнения каждого вычисления.





Если вам нужен по настоящему хороший и профессиональный веб хостинг или свой высокопроизводительный сервер, то смело переходите по ссылке и заказывайте!

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *



Карта сайта
Copyright © 2024