5 примеров сценариев Bash, которые помогут вам изучить программирование для Linux

2
компьютеры и технологии 12.webp.webp

Последнее обновление 21.01.2024 — Василий Иванов

Быстрые ссылки

  • Как напечатать Hello World в Bash
  • Создайте каталог, прочитав ввод
  • Создание каталога с использованием аргументов командной строки
  • Удаление файла с помощью функции Bash
  • Создайте базовый калькулятор для арифметических вычислений

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

1. Как напечатать Hello World в Bash

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

Вот как напечатать «Hello World» с помощью Bash:

  1. Откройте текстовый редактор и начните редактировать новый файл, содержащий следующие строки кода.
  2. Первая строка ваших сценариев Bash всегда должна выглядеть так:
     #!/bin/bash 

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

  3. Любая строка, начинающаяся с символа #, является комментарием. Строка shebang — это особый случай, но для пояснения кода вы можете использовать свои собственные комментарии. Добавьте комментарий к строке 2, например:
     # Print some text from a bash script 
  4. Вы можете вывести результат на стандартный вывод, используя команду echo, за которой следует значение, которое вы хотите напечатать. Добавьте следующее в строку 3:
     echo "Hello World" 
  5. Сохраните скрипт, желательно с расширением .sh, например hello_world.sh. Расширение не является обязательным требованием, но это соглашение, которого полезно придерживаться.
  6. Чтобы запустить скрипт, сделайте файл исполняемым. Используйте команду chmod («изменить режим») вместе с аргументом +x («исполняемый файл») и именем вашего сценария оболочки:
     chmod +x hello_world.sh 
  7. Используйте эту команду для запуска сценария из его каталога:
     ./hello_world.sh 
  8. Когда скрипт запустится, он выведет на ваш терминал текст «Hello World»:
По теме:  Что такое папка «$Windows.~BT» и можно ли ее удалить?

2. Создайте каталог, прочитав входные данные.

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

  1. Начните с той же строки, что и раньше:
     #!/bin/bash 
  2. Запросите у пользователя имя каталога, используя команду echo, как и раньше:
     echo "Enter new directory name:" 
  3. Используйте встроенную команду чтения для получения вводимых пользователем данных. Единственный аргумент называет переменную, в которой оболочка будет хранить входные данные:
     read newdir 
  4. Если вам нужно использовать значение, хранящееся в переменной, добавьте к ее имени символ доллара ($). Вы можете передать содержимое входной переменной в качестве аргумента команде mkdir, чтобы создать новый каталог:
     mkdir $newdir 
  5. Когда вы запустите этот сценарий, он предложит вам ввести данные. Введите допустимое имя каталога, и вы увидите, что скрипт создаст его в вашем текущем каталоге:

3. Создайте каталог, используя аргументы командной строки

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

По теме:  Как разделить экран в Windows 11

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

  1. Создайте каталог с помощью команды mkdir из предыдущего примера. Однако на этот раз используйте встроенную переменную $1:
     #!/bin/bash
    mkdir $1
  2. Запустите скрипт, на этот раз передав выбранное вами имя нового каталога в качестве аргумента:
     ./arg_dir.sh Test 

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

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

  1. Как всегда, начните со строки шебанга:
     #!/bin/bash 
  2. Прежде чем вызывать mkdir, проверьте пустой первый аргумент (т. е. отсутствие аргументов). Вы можете сделать это, используя оператор if Bash, который запускает код на основе условия:
     if ["$1" = ""]; then 
  3. Если первый аргумент пуст, выведите сообщение об ошибке и выйдите из сценария:
         echo "Please provide a new directory name as the first argument"
        exit
  4. Немного странное ключевое слово «fi» (перевернутое «if») сигнализирует об окончании оператора if в Bash:
     fi 
  5. Теперь ваш сценарий может продолжать работу, как и раньше, для обработки случая, когда присутствует аргумент:
     mkdir $1 

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

4. Удалить файл с помощью функции Bash

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

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

  1. Начните со строки шебанга:
     #!/bin/bash 
  2. Определите функцию, написав ее имя, за которым следуют пустые круглые скобки и команды внутри фигурных скобок:
     del_file() {
        echo "deleting $1"
        rm $1
    }

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

     del_file test.txt 

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

 if [ $? -ne 0 ]; then
    echo "Sorry, could not delete the file"
fi

5. Создайте базовый калькулятор для арифметических вычислений.

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

Вот код Calc.sh:

 #!/bin/bash

# Take operands as input
echo "Enter first number: "
read a

echo "Enter second number: "
read b

# Input type of operation
echo "Enter Arithmetic Operation Choice :"
echo "1. Addition"
echo "2. Subtraction"
echo "3. Multiplication"
echo "4. Division"
read choice

# calculator operations
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: $result"

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

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

Предыдущая статьяКак пройти испытание «Женская удача» в BitLife
Следующая статьяКак убить приятелей в Palworld
Василий Иванов
Василий - внештатный автор сайта, специализирующийся на технологических новостях. Ранее он работал в качестве автора заявок и корректора. Василий активно пишет и рассказывает о потребительских технологиях. Его главная страсть - компьютеры, но он с удовольствием расскажет вам обо всем, что имеет процессор.