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
Pod zmienną możemy podstawić wynik jakiegoś polecenia, można to zrobić na dwa sposoby:
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
).
$(polecenie)
Przykład:
#!/bin/bash
GDZIE_JESTEM=$(pwd)
echo "Jestem w katalogu $GDZIE_JESTEM"