GNU/Linux >> Znalost Linux >  >> Linux

Kurz proměnných Bash – 6 praktických příkladů globálních a lokálních proměnných Bash

Tento článek je součástí naší probíhající série výukových programů bash. Jako každý jiný programovací jazyk, i Bash poskytuje proměnné.

Proměnné Bash poskytují dočasné úložiště pro informace, které budou potřeba během životnosti programu.

Syntaxe:

VARNAME=VALUE

Poznámka: Kolem znaku „=“ přiřazení proměnné by neměla být žádná mezera. Když použijete VAR=VALUE, shell vidí „=“ jako symbol a považuje příkaz za přiřazení proměnné. Když použijete VAR =VALUE, shell předpokládá, že VAR musí být název příkazu a pokusí se jej provést.

Shell se nestará o typ proměnných. Proměnné mohou ukládat řetězce, celá čísla nebo reálná čísla.

Příklad.1 Použití jednoduchého přiřazení proměnné Bash

Následující skript vytvoří proměnnou s názvem LIST a přiřadí jí hodnotu „/var/opt/bin“. Chcete-li získat přístup k proměnným, stačí před název proměnné přidat $, což vám dá hodnotu uloženou v této proměnné.

$ cat sample.sh
#!/bin/bash
LIST="/var/opt/bin/"
ls -l $LIST

Spusťte výše uvedený skript, který zobrazí /var/opt/bin v dlouhém formátu, jak je uvedeno níže.

$ ./sample.sh
total 8
drwxrwsr-x 2 bin  bin 4096 Jan 29 06:43 softwares
drwxr-sr-x 5 root bin 4096 Sep  2  2009 llist

Proměnný rozsah Bash – místní a globální

V Bash nemusí být proměnné deklarovány. Ale když přistoupíte k proměnné, která se dosud nepoužívá, neobdržíte žádné varování ani chybové hlášení. Místo toho zobrazí prázdnou hodnotu.

Příklad 2. Prázdné hodnoty v proměnných bash

$ cat var1.sh
#!/bin/sh
echo "Variable value is: $VAR1"
VAR1="GEEKSTUFF"
echo "Variable value is: $VAR1"

$ ./var1.sh
Variable value is:
Variable value is: GEEKSTUFF

Jak je uvedeno výše, zpočátku bude mít proměnná prázdnou hodnotu, po přiřazení můžete získat své hodnoty. Příkaz export se používá k exportu proměnných z interaktivního shellu. export ukazuje vliv na rozsah proměnných.

Příklad 3. Bash proměnné bez exportu

Přiřaďte proměnnou hodnotu v interaktivním shellu a pokuste se k ní přistupovat ve skriptu shellu.

$ VAR2=LINUX

$ cat var2.sh
#!/bin/bash
echo "VAR2=$VAR2"
VAR2=UNIX
echo "VAR2=$VAR2"

Nyní spusťte výše uvedený skript, jak je ukázáno níže.

$ ./var2.sh
VAR2=
VAR2=UNIX

Přesto dostanete prázdnou hodnotu pro proměnnou VAR2. Shell ukládá proměnnou VAR2 s LINUX pouze v aktuálním shellu. Během provádění var2.sh spustí shell a spustí skript. Takže proměnná VAR2 nebude mít hodnotu ve vytvořeném shellu. Proměnnou musíte exportovat, aby ji zdědil jiný program – včetně skriptu shellu, jak je ukázáno níže.

Příklad 4. Export proměnné Bash

$ export VAR2=LINUX

$ cat var2.sh
#!/bin/bash
echo "VAR2=$VAR2"
VAR2=UNIX
echo "VAR2=$VAR2"

Nyní spusťte výše uvedený skript.

$ ./var2.sh
VAR2=LINUX
VAR2=UNIX
$
$echo $VAR2
LINUX

Nyní si můžete všimnout, že po provedení shell skriptu var2.sh je hodnota VAR2 LINUX. Protože proměnné nebudou předány zpět do vašeho interaktivního shellu, pokud skript nespustíte v aktuálním shellu.

Deklarování proměnné Bash

Pomocí příkazu deklarovat v bash můžeme omezit hodnotu přiřazenou proměnným. Omezuje vlastnosti proměnných. Volba v příkazu deklarace se používá k určení typu proměnné.

Syntaxe:

declare option variablename
  • deklarovat je klíčové slovo
  • Možnost
  • může být:
    • -r proměnná pouze pro čtení
    • -i celočíselná proměnná
    • -proměnná pole
    • -f pro funkce
    • -x deklaruje a exportuje do následujících příkazů prostřednictvím prostředí.

Příklad 5. Deklarace proměnné Bash pomocí deklarace

$ cat declar.sh
#!/bin/bash
declare -i intvar
intvar=123 # Assigning integer value.
echo $intvar
intvar=12.3 #Trying to store string type value to an integer variable
echo $intvar

declare -r rovar=281
rovar=212 # Trying to change the readonly variable.

Z níže uvedeného provedení si můžete všimnout chybové zprávy, když proměnné přiřadíte neplatná data.

$ ./declar.sh
123
t.sh: line 6: 12.3: syntax error: invalid arithmetic operator (error token is ".3")
123
t.sh: line 11: rovar: readonly variable

Globální proměnné Bash

Globální proměnné se také nazývají proměnné prostředí, které budou dostupné všem shellům. Příkaz printenv se používá k zobrazení všech proměnných prostředí.

$ printenv
SHELL=/bin/bash
HISTSIZE=1000
SSH_TTY=/dev/pts/1
HOME=/root
LOGNAME=root
CVS_RSH=ssh

Místní proměnné Bash

Lokální proměnné jsou viditelné pouze v rámci bloku kódu. local je klíčové slovo, které se používá k deklaraci lokálních proměnných. Ve funkci má lokální proměnná význam pouze v rámci daného funkčního bloku.

Příklad 6. Globální a místní proměnné bash

$ cat localvar.sh
#!/bin/bash
pprint()
{
  local lvar="Local content"
  echo -e "Local variable value with in the function"
  echo $lvar
  gvar="Global content changed"
  echo -e "Global variable value with in the function"
  echo $gvar
}

gvar="Global content"
echo -e "Global variable value before calling function"
echo $gvar
echo -e "Local variable value before calling function"
echo $lvar
pprint
echo -e "Global variable value after calling function"
echo $gvar
echo -e "Local variable value after calling function"
echo $lvar

Spusťte výše uvedený skript

$ sh t.sh
Global variable value before calling function
Global content
Local variable value before calling function

Local variable value with in the function
Local content
Global variable value with in the function
Global content changed
Global variable value after calling function
Global content changed
Local variable value after calling function

Ve výše uvedeném výstupu budou mít lokální proměnné pouze prázdnou hodnotu před a po volání funkce. Jeho rozsah je pouze ve funkci. Z funkce zmizela, zatímco globální proměnná má aktualizovanou hodnotu i po provedení funkce.


Linux
  1. Bash pro průvodce smyčkou a příklady

  2. Linux nice and renice Command Tutorial (7 příkladů)

  3. C Výukový program programování 4 - Proměnné a paměť

  1. Příklady Bash for Loop a While Loop

  2. Výukový program Awk:Pochopte proměnné Awk pomocí 3 praktických příkladů

  3. Exportujte proměnnou z bash a použijte ji v Pythonu

  1. Bash Shell Exit Status Tutorial s praktickými příklady

  2. Výukový program Ultimate Bash Array s 15 příklady

  3. Perl Array Reference a Dereference Tutorial s praktickými příklady