Zmienne programowe

Zmienne prrogramowe (użytkownika) (ang. program variables) - są to zmienne po prostu wykorzystywane wewnątrz skryptu, które definuje uzytkownik. Nie są dostępne dla innych programów, skryptów i powłok potmonych. Ich nazwy nie mogą się zaczynać od cyfry i pisane są zwyczajowo małymi literami. Czasami stosuje się podkreślenia.

Zmienne tego typu inicjujemy w nastepujacy sposób:

johny@ThinkPad:~$ ETYKIETA="wartosc_zmiennej"

a korzystamy z nich, poprzedając ich wartość znakiem dolara ($).

johny@ThinkPad:~$ ETYKIETA="wartosc_zmiennej"
johny@ThinkPad:~$ echo $ETYKIETA
wartosc_zmiennej
johny@ThinkPad:~$ echo ${ETYKIETA}
wartosc_zmiennej
johny@ThinkPad:~$ echo "${ETYKIETA}"
wartosc_zmiennej
johny@ThinkPad:~$ echo '${ETYKIETA}'
${ETYKIETA}

Ostrzeżenie

Należy pamiętać, że pomiędzy nazwą zmiennej znakiem równa się i wartością zmiennej nie było spacji lub innych białych znaków - jest to błąd. Ot taki wymysł Bashowy, w innych językach tego nie ma (jest to często popełniany błąd przez początkujących programistów).

Przykład:

x="napis"
echo $x

Podstawienie wyniku polecenia pod zmienną

Pod zmienną możemy podstawić wynik jakiegoś polecenia, można to zrobić na dwa sposoby:

Użycie odwrotnych apostrofów

zmienna=`polecenie`

Przykład:

#!/bin/bash

GDZIE_JESTEM=`pwd`
KIM_JESTEM=`whoami`
echo "Nazywam sie $KIM_JESTEM i przebywam w katalogu $GDZIE_JESTEM"

Wartością zmiennej KIM_JESTEM, GDZIE_JESTEM jest wynik działania poleceń odpowiednio whoami i pwd, które wypiszą nazwę uzytkownika (whoami) oraz katalog w jakim się w danej chwili znajdujemy (pwd).

Rozwijanie zawartości nawiasów

$(polecenie)

Przykład:

#!/bin/bash

GDZIE_JESTEM=$(pwd)
echo "Jestem w katalogu $GDZIE_JESTEM"