Bash script variables

19 Created on 27 March 2025 at 14:17
  Bash     It     Linux     Scripting  

Переменные в Bash используются для хранения данных, которые могут быть использованы многократно в скрипте.

  • Переменные могут хранить строки, числа, массивы и другие типы данных.
  • В Bash переменные не требуют объявления типа.
  • Например, одна и та же переменная может содержать и строку, и число в разных частях скрипта.

message="Hello, World!"

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

echo $message

Области видимости

Относительно скрипта переменные можно поделить на локальные и глобальные.

Глобальная переменная доступна внутри любой конструкции в скрипте, где она объявлена.

name=”John”

Для того чтобы создать локальную переменную, ее нужно объявить через команду local.

local name=”Jane”

Локальная переменная используется только внутри функций.

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

#! /bin/bash

echo "[INFO] Script main.sh is starting..." echo "This is current directory: $(pwd)"

function greet() {

local name="Jane"

echo "Hello, $name $surname!"

}

surname="Doe"

greet

echo $name $surname

  • Сначала функция greet выведет сообщение: Hello, Jane Doe!
  • surname это глобальная переменная и она доступна во всех конструкциях скрипта.
  • Команда echo выводит только Doe.
  • Переменная name является локальной и ее значение доступно только внутри функции greet.

Переменные окружения

Переменные окружения Linux доступны в любой части скрипта.

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

Bash скрипт сам может создавать переменные окружения при помощи команды export.

Доступность этой переменной зависит от того как был запущен скрипт:

  • Если скрипт был запущен в текущем процессе оболочки через команду source, переменная окружения останется доступной. ** Если скрипт был запущен в новом дочернем процессе, переменная окружения объявленная в этом дочернем процессе не будет доступна родительскому процессу.