Как создать bash-файл Ubuntu

Обновлено: 21.11.2024

Shell Scripting — это компьютерная программа с открытым исходным кодом, предназначенная для запуска в оболочке Unix/Linux. Shell Scripting — это программа для написания серии команд для выполнения оболочкой. Он может объединять длинные и повторяющиеся последовательности команд в один простой сценарий, который можно сохранить и выполнить в любое время, что сокращает усилия по программированию.

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

Что такое Shell?

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

Операция состоит из многих компонентов, но два ее основных компонента —

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

Оболочка в операционной системе Linux получает от вас данные в виде команд, обрабатывает их и выдает результат. Это интерфейс, через который пользователь работает с программами, командами и сценариями. Доступ к оболочке осуществляется через терминал, который ее запускает.

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

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

Это руководство по сценариям оболочки Unix/Linux помогает понять основы сценариев оболочки до продвинутого уровня.

В этом учебном пособии по сценариям оболочки вы узнаете:

Нажмите здесь, если видео недоступно

Типы оболочки

В Linux есть две основные оболочки:

<р>1. Оболочка Bourne: приглашение для этой оболочки — $, и его производные перечислены ниже:

  • Оболочка POSIX также известна как sh
  • Korn Shell также известен как sh
  • Bourne Again SHell также известен как bash (наиболее популярный)
  • Оболочка C также известна как csh
  • Оболочка Tops C также известна как tcsh

В этом руководстве мы обсудим сценарии оболочки на основе оболочки bash.

Как написать сценарий оболочки в Linux/Unix

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

Давайте разберемся с этапами создания сценария оболочки:

Давайте создадим небольшой скрипт –

Давайте рассмотрим шаги по созданию программ сценариев оболочки в Linux/Unix –

Команда ‘ls’ выполняется, когда мы запускаем файл sample.sh скрипта.

Добавление комментариев оболочки

Комментирование важно в любой программе. В программировании оболочки синтаксис для добавления комментария:

Позвольте понять это на примере.

Что такое переменные оболочки?

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

Например, следующий код создает переменную оболочки, а затем выводит ее:

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

Давайте разберемся, шаги по созданию и выполнению скрипта

Как видите, программа выбрала значение переменной «имя» как «Радость», а «примечание» — как «отлично».

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

Обзор:

  • Ядро — это ядро ​​операционной системы, обеспечивающее связь между аппаратным и программным обеспечением.
  • Shell – это программа, которая интерпретирует пользовательские команды через интерфейс командной строки, например Терминал.
  • Оболочка Bourne и оболочка C являются наиболее часто используемыми оболочками в Linux.
  • Сценарий оболочки Linux записывает серию команд для выполнения оболочкой
  • Переменные оболочки хранят значение строки или числа для чтения оболочкой.
  • Сценарии оболочки в Linux могут помочь вам создавать сложные программы, содержащие условные операторы, циклы и функции
  • Основные команды сценариев оболочки в Linux: cat, more, less, head, tail, mkdir, cp, mv, rm, touch, grep, sort, wc, cut и другие.

Компания Acunetix, разработчик сверхточных сканеров безопасности веб-приложений, спонсировала проект Guru99, помогая точно и с максимальной скоростью сканировать более 4500 веб-уязвимостей.

Сценарии Bash — это один из самых простых типов сценариев для изучения, и его лучше всего сравнивать с пакетными сценариями Windows. Bash очень гибок и имеет множество расширенных функций, которых нет в пакетных скриптах.

Однако, если вы не разбираетесь в компьютерах, для вас это ничего не значит. Bash — это язык, который вы научитесь любить, поскольку большая часть повседневной жизни Ubuntu выполняется/может выполняться с помощью терминала. Вскоре вы узнаете, что большинство вещей можно делать как с помощью GUI (графического пользовательского интерфейса), так и с помощью CLI (интерфейса командной строки), однако некоторые вещи легче выполнить с помощью одного или другого. Например, изменить права доступа к файлам папки и всех ее вложенных папок проще с помощью cli вместо графического интерфейса.

ПРИМЕЧАНИЕ. Текст внутри поля необходимо ввести в терминал следующим образом:

При необходимости вы также можете просто скопировать и вставить.

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

  • Создание папок
  • Удаление файлов
  • Удаление папок и их подпапок
  • Открытие приложений с правами root
  • Резервное копирование файлов
  • Резервное копирование папок
  • Проверка производительности системы
  • Проверить устройства
  • Проверка беспроводного подключения

Наряду со многими другими вещами, приведенный выше список будет командами, которые мы обсудим.

Создание папок

Создать папки можно просто в файловом менеджере nautilus, щелкнув правой кнопкой мыши и выбрав «Создать папку», но если вы хотите сделать это из среды cli, введите в терминале следующее:

команда mkdir (создать каталог) создает папку, а путь к файлу сообщает ей, где создать папку.

Удаление файлов

Удаление файлов выполняется с помощью команды rm следующим образом:

команда rm (удалить) используется для удаления чего-либо через среду cli.

Удаление папок и их подпапок

Команда, которую вы собираетесь прочитать, потенциально (при неправильном использовании) может разрушить вашу систему!

Для принудительного (обратите внимание, что в большинстве случаев вам не нужно будет использовать -f)

Эта команда немного отличается от предыдущей, она использует две опции: '-r', что означает рекурсию (удалит папку и все подпапки), и '-f' означает принудительно (не будет спрашивать вашего разрешения). . Эта команда идеально подходит для удаления каталога и всех его подкаталогов. Следующие команды должны !!**!!НИКОГДА!!!**!! быть запущенным. Если только вы не хотите попрощаться со своей системой.

Это удалит все из вашей корневой папки вниз, что, если бы вы сделали стандартную установку, было бы всем.

Выполнение команд с правами root

При работе в командной строке вы обычно хотите работать с разрешениями по умолчанию. Таким образом, вы гарантируете, что случайно не сломаете что-либо, принадлежащее системе или другим пользователям, если система и другие пользователи не изменили свои права доступа к файлам. Тем не менее, будут случаи, когда вы захотите скопировать файл в системную папку (например, /usr/local/bin), чтобы сделать его доступным для всех пользователей системы. Только системный администратор (то есть пользователь root) должен иметь разрешение на изменение содержимого системных каталогов, таких как /usr/local/bin. Поэтому попытка скопировать файл (например, программу, загруженную из Интернета) в эту папку по умолчанию запрещена.

Поскольку было бы очень утомительно всегда входить в систему с правами root для выполнения административной работы (на самом деле вам следует избегать входа в систему с правами root на графическом рабочем столе), вы можете использовать программу sudo для выполнения одной команду от имени пользователя root.

Установка Ubuntu по умолчанию настроена таким образом, что пользователю, созданному во время установки системы, разрешено использовать эту команду. Он запросит пароль и выполнит команду от имени пользователя root.

Открытие приложений с графическим интерфейсом пользователя с правами root

Иногда вам понадобится отредактировать файл конфигурации в вашей корневой папке, чтобы сохранить изменения в этом файле, вам нужны привилегии суперпользователя, поэтому нам нужно открыть наш текстовый редактор как root. Все, что вам нужно, это просто sudo или pkexec, чтобы отобразить всплывающее окно пароля графического интерфейса пользователя.

Обратите внимание, что многие приложения kde не будут работать, как kate или dolphin.

Резервное копирование файлов

Чтобы создать резервную копию файла, мы воспользуемся командой cp (копировать). Основной синтаксис для cp следующий:

Это скопирует «исходный_файл» в «целевой_файл». Теперь, используя предыдущий пример, мы хотим создать резервную копию «/path/to/conf_file.txt». Для этого мы набираем следующее:

Это прекрасно, но что, если я хочу скопировать файл в другой каталог? Ну это так же легко. Скажем, вместо того, чтобы копировать /path/to/conf_file.txt в каталог /path/to/, вы хотите скопировать его в каталог, где хранятся все ваши файлы резервных копий, скажем, /my/backup/folder/. Для этого введите:

***Это типичная мера безопасности, которая в прошлом спасла многих пользователей от полной катастрофы.***

Хорошо, теперь мы знаем, как копировать файл: а) в файл с другим именем и б) в другую папку. Но как нам скопировать целые каталоги?

Резервное копирование каталогов

Для резервного копирования одного каталога в другой мы вводим параметр cp -r (рекурсивный). Основной синтаксис следующий:

Поэтому, если бы мы хотели скопировать все содержимое нашей папки /path/to/ в нашу папку /my/backup/, мы бы набрали следующее:

Проверка производительности системы

Если ваш компьютер начинает тормозить, вы можете увидеть, какие приложения используют больше всего ресурсов ЦП, с помощью этой команды:

Как правило, это та же информация, что и в графическом интерфейсе приложения «Системный монитор».

Проверить устройства

Если USB-устройство перестает работать, вы можете проверить, подключено ли оно или обнаружено. Чтобы проверить, подключено/обнаружено ли устройство, введите следующее:

Поскольку устройства PCI проверяются с помощью:

Показать информацию о сети

Чтобы увидеть статус вашего сетевого подключения, используйте команду:

Эта команда покажет вам ваш IP-адрес, тип используемого соединения и т. д.

Показать информацию о беспроводной сети

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

Здесь также отображаются отправленные/полученные пакеты.

ПРИМЕЧАНИЕ. Команды, приведенные в разделе сценариев, следует вводить в текстовый редактор, а не в терминал, если не указано иное.

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

Надеюсь, вы видели, как он печатает Hello, World на вашем экране. Если так молодец! Это ваш первый Bash-скрипт.

СОВЕТ Если вы введете:

Вы увидите каталог, в котором вы сейчас работаете (pwd означает «распечатать рабочий каталог»). Если ваш текущий рабочий каталог /where/i/saved/it/, вы можете сократить приведенную выше команду до:

Теперь давайте перейдем к более интересным аспектам программирования Bash, к переменным!

Переменные

Переменные в основном хранят информацию. Вы устанавливаете такие переменные с помощью текстового редактора:

'var' может быть чем угодно, если только оно не начинается с цифры. "FOO" может быть чем угодно.

Чтобы получить доступ к информации из переменной, вам нужно поставить перед ней символ "$" следующим образом:

Попробуйте ввести эти строки в терминал по одной; вы увидите, что первый просто дает вам другое приглашение, а второй печатает FOO.

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

read позволяет пользователю вводить информацию, где она затем сохраняется в переменной, определенной после чтения. переменная чтения будет принимать любые введенные пользователем данные и сохранять их в переменной $variable. Затем мы получаем доступ к этому с помощью эха и создаем аккуратное предложение. Однако этот сценарий довольно запутанный; read имеет еще одну функцию, которая может вдвое уменьшить размер этого скрипта.

Это более эффективный код. Однако это все еще немного грязно при запуске. Решение? Старые добрые белые пятна!

Теперь у нас есть эффективный и чистый скрипт Bash.

Если операторы

С помощью оператора if можно проверить что-то и сделать что-то еще в зависимости от результата проверки. Например, если бы у меня было «яблоко», я бы хотел убедиться, что это все еще «яблоко», а не «апельсин», потому что я не люблю апельсины!

Синтаксис оператора if:

Инструкция else if или (elif) необязательна, но при необходимости ее можно использовать.

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

Чтобы пояснить это утверждение,

Утверждения if легко понять, так как они похожи на "if", используемое в разговорном английском языке. Но, скажем, вы хотите иметь 4 или 5 чеков, ответ может состоять в том, чтобы написать 4 или 5 утверждений, но это не самый практичный способ. Вот где elif пригодится.

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

Стандартный вывод приложения (то, что вы видите на экране терминала с приложением без конвейера) можно сохранить и использовать в Bash. Самый простой и элегантный способ — использовать подстановку команд, заключая код в $(. )

Пример

Этот код должен выводить текущих пользователей, их соответствующие tty и дату входа в систему. Обратите внимание, что это удаляет новые строки. Обязательно выполните любой синтаксический анализ в строке ( | grep и т. д.), а затем передайте его в переменную. Мы попробуем это снова, но grep для tty7, tty GUI.

Пример 2

Это должно вывести одного пользователя, который в данный момент зарегистрирован в WM. Давайте перейдем к более сложным манипуляциям с данными в рамках подстановки команд.

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

Пример

Вот пример скрипта:

Хотя этот пример прост, вы можете видеть, что если вы хотите изменить "echo is Called" на "foo is Called", вам придется редактировать дважды.

Ниже показано то же приложение, использующее функции.

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

Отладка

Я всегда считаю полезным отслеживать сценарий, чтобы выяснить, почему что-то не работает должным образом. Для трассировки запустите его явно через bash и используйте параметр -x, например:

Это запишет каждую команду в стандартную ошибку (с предшествующим символом «+») перед ее выполнением.

tr — одно из самых простых приложений для передачи данных, использующее базовый синтаксис сценариев. В этом случае он принимает регулярные выражения. Давайте выполним обычно сложную задачу, преобразуя строку в верхний регистр.

Пример

Вывод должен выглядеть примерно так:

tr также может транслировать строки, поэтому давайте переведем все "tar" в $foo в "bar".

Пример

вывод должен выглядеть примерно так:

AWK (сокращение от Aho, Weinberger & Kernighan)

У

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

клон пидофа

Давайте сделаем быстрый клон pidof, который запрашивает идентификатор процесса, а затем повторяет его.

Давайте уберем несколько каналов и будем использовать для фильтрации только awk

Одинарные кавычки используются для передачи команд awk. Фигурные скобки предназначены для использования языка awk (для таких вещей, как печать, если и т. д.). Печать распечатывает столбец, переданный с помощью разметки $, разделенной пробелом.

Опция awk -v позволяет передать значение оболочки в переменную awk, $8 — это переменная поля (столбец 8 выходных данных команды ps -ef), а оператор ~ соответствует регулярному выражению.

Существует гораздо больше команд, чем команда печати, включая операторы if и т. д., и их стоит изучить, если вам интересно то, что вы здесь видите!

sed — один из самых сложных языков сценариев в системе GNU/Linux. Здесь я расскажу только о команде s/.

Базовая замена

Попробуйте это, чтобы показать, что sed может не только заменять строку, но, в отличие от tr, заменять более длинной или более короткой строкой, чем раньше.

При запуске этой команды первое появление "foo" должно быть заменено на "bars".

Это пример вывода.

Beginners/BashScripting (последним удаленным пользователем lnee 01.02.2022 17:36:41)

Материалы этой вики доступны по бесплатной лицензии, подробности см. в разделе Авторские права / Лицензия
Вы можете внести свой вклад в эту вики, подробности см. в Руководстве по вики

В Windows я могу написать файл, содержащий команды для cmd (обычно файлы .cmd или .bat). Когда я нажимаю на эти файлы, он открывает cmd.exe и запускает команды, содержащиеся в файле.

Как бы я сделал это в Ubuntu?

Я уверен, что это дубликат, но я не могу найти ответ.
Это похоже на эти вопросы, но они не отвечают на вопрос:

3 ответа 3

Есть два метода.

Во-первых, наиболее распространенным является запись файла, убедитесь, что первая строка

Затем сохраните файл. Затем пометьте его как исполняемый, используя файл chmod +x

Затем, когда вы нажмете (или запустите файл из терминала), команды будут выполнены. По соглашению эти файлы обычно не имеют расширения, однако вы можете сделать их заканчивающимися на .sh или любым другим способом.

  • Любой (и я имею в виду любой) файл может быть выполнен в Linux при условии, что первая строка является путем к программе, которая должна интерпретировать файл. Общие примеры включают /bin/python , /bin/sh , /bin/dash , но даже странные вещи работают как /bin/mysql
  • Bash – это полноценный язык. Это намного сложнее, чем cmd.exe в Windows. Он имеет сильный язык программирования, который поддерживает функции, циклы, условные операторы, строковые операции и т. д., которые могут помочь, если вы столкнетесь с проблемами.
  • Если вы не хотите делать исполняемый файл, вы можете запустить его, передав его в качестве аргумента bash: bash file/to/run.sh

Простой пример Bash

Второй метод заключается в записи команд с помощью скрипта. Запустите скрипт, затем просто делайте что-то. Когда вы закончите, введите команду exit, и скрипт сгенерирует для вас файл со всеми «вещами», которые вы сделали. Это используется реже, но вполне подходит для создания таких вещей, как макросы. man-скрипт для получения дополнительной информации.

Я хотел бы отметить, что /bin/dash (на который обычно ссылается /bin/sh) намного быстрее, чем bash (я измерял примерно в 15 раз быстрее). Если возможно, используйте /bin/dash для сценариев оболочки :)

Я пробовал оба метода, но если я попытаюсь дважды щелкнуть файл сценария bash, он просто откроет текстовый файл в geany/gedit, готовый для редактирования. Я бы хотел, чтобы скрипт выполнялся при двойном щелчке. Этот вопрос содержит более подробную информацию о том, что я хочу сделать.

Вы имеете в виду запись в файл с помощью сценария оболочки? Вот несколько способов:

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

Этот метод перезаписывает содержимое файла текстом. Если вы хотите очистить файл, вы можете просто сделать это:

Скажем, вы хотите написать в него более одной строки и не хотите использовать тысячи эхо-команд, вы должны использовать эту команду:

Это позволяет вам писать несколько строк в одной команде. Содержимое файла будет таким:

Если вы хотите дополнить файл, замените > на >> .

Надеюсь, это поможет!

РЕДАКТИРОВАТЬ: О, я вижу, поэтому вы должны написать файл в gedit, используя расширение .sh (необязательно, но это хорошая идея), а затем в файловом менеджере щелкните файл правой кнопкой мыши, выберите Свойства- > Разрешения и установите флажок Разрешить выполнение файла как программы. Затем вы можете дважды щелкнуть по нему, и он запустится :). Кроме того, если вы хотите сделать это в терминале, вы можете запустить эту команду, чтобы сделать ее исполняемой (вы можете добавить sudo, если она не принадлежит вам):

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

Bash – это оболочка Unix, представляющая собой интерфейс командной строки (CLI) для взаимодействия с операционной системой (ОС). Любая команда, которую вы можете запустить из командной строки, может быть использована в сценарии bash. Сценарии используются для запуска ряда команд.

Bash доступен по умолчанию в операционных системах Linux и macOS.

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

Примечание. В более новых версиях macOS (от Catalina) по умолчанию устанавливается zsh (оболочка Z), но все, что описано в этой статье, по-прежнему применимо.

  • Необходимы базовые знания командной строки. Все, что вам нужно знать, чтобы начать работу, можно найти в моей статье «Как использовать командную строку».

Это руководство было создано для macOS и будет использовать /Users/you в качестве пользовательского каталога по умолчанию для всех примеров. Однако приведенные здесь концепции применимы к любой Unix-подобной операционной системе, включая macOS и различные дистрибутивы Linux.

В этом уроке мы собираемся:

Создайте свой первый сценарий

Создать сценарий bash намного проще, чем вы думаете.

Создайте файл с именем hello-world с помощью команды touch.

Редактируйте файл с помощью программы по вашему выбору. В файле напечатайте строку «Hello, world!» используя эхо .

Теперь из командной строки запустите скрипт с помощью интерпретатора bash:

По выходным данным вы увидите, что сценарий успешно выполнен.

Вот и все, вы создали свой первый скрипт!

До сих пор вы узнали, как запустить сценарий из командной строки с префиксом интерпретатора bash. Однако, если вы хотите запустить скрипт только по имени, это не сработает. Попробуйте запустить файл, просто набрав имя файла и нажав Enter.Обратите внимание, что мы ставим перед файлом префикс ./ , что означает файл в текущем каталоге.

Чтобы запустить файл напрямую, нам нужно изменить права доступа, чтобы позволить скрипту быть исполняемым для пользователя. chmod — это команда, которая изменяет права доступа к файлу, а +x добавит права на выполнение скрипта.

Теперь вы можете запускать hello-world напрямую.

Примечание. Чтобы запустить скрипт bash без указания каталога (например, с помощью ./ ), вам нужно будет добавить каталог скрипта в PATH, запустив export PATH=$PATH:/path /в/скрипт/каталог . Однако в этом обычно нет необходимости для личных скриптов.

Простая строка в Bash не требует двойных кавычек — ее можно написать напрямую.

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

Однако, если вы хотите использовать одинарную или двойную кавычку в строке без экранирующих символов, вы можете сделать это, заключив строку в кавычки.

С флагом -e bash будет интерпретировать строки с символами, экранированными обратной косой чертой, например \n для новой строки. Для этого также требуется строка в кавычках.

Строки в двойных кавычках также важны для использования с переменными, как мы увидим в следующем разделе.

Переменная объявляется без знака доллара ( $ ), но имеет его при вызове. Давайте отредактируем наш пример hello-world, чтобы использовать переменную для приветствуемого объекта, которым является World .

Обратите внимание, что who = "World" с пробелом между присваиванием недействителен - не должен быть пробел между переменной и значением.

Для интерполяции переменных требуются строки в двойных кавычках. Внутри одной строки в кавычках знак доллара будет интерпретироваться буквально

Еще один способ записи переменных заключается в фигурных скобках вместе со знаком доллара, что называется расширением параметра.

Этот синтаксис необходим для более сложных действий с переменной, например для получения одного элемента из массива.

Если вы хотите использовать вывод выполнения оболочки в строке, вы можете сделать это со знаком доллара, за которым следуют круглые скобки. ($()). Например, команда whoami распечатает вашего текущего пользователя. Чтобы использовать его в строке, оберните whoami в синтаксисе выполнения оболочки.

Мы объявили переменную в последнем примере, но мы также можем сделать так, чтобы пользователь динамически задавал значение переменной. Например, вместо того, чтобы просто написать сценарий Hello, World! , мы можем заставить его запрашивать имя человека, вызывающего скрипт, а затем выводить это имя. Мы сделаем это с помощью команды чтения.

Операторы в bash немного отличаются от тех, к которым вы, возможно, привыкли.

Для сравнения чисел вы будете использовать операторы в столбце сравнения чисел, такие как -lt для меньше чем.

Для сравнения строк вы будете использовать операторы в столбце сравнения строк, например, меньше, чем.

Это противоположно тому, что вы могли ожидать, но именно так это работает в bash.

< td>-eq < td>-ge
Сравнение чисел Сравнение строк Описание
== Равно
-ne != Не равно
-gt > Больше, чем
>= Больше или равно
-lt Меньше< /td>
-le Меньше или равно

Вы также можете использовать -z для проверки наличия пустых строк в строке.

В операторах if используются ключевые слова if , then , else и fi . Условие заключено в квадратные скобки.

Bash использует циклы for, while и until. В этом примере я буду использовать for. в цикле, чтобы получить все файлы в каталоге и перечислить их.

Массив в bash определяется внутри круглых скобок. Между элементами массива нет запятых.

Чтобы получить доступ к элементу из массива, вы будете использовать квадратные скобки ( [] ). В bash массивы индексируются 0. Также необходимо использовать синтаксис расширения параметра.

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

Читайте также: