Úvod
Proměnná v bash je vytvořena přiřazením hodnoty její referenci. Ačkoli vestavěný declare
příkaz není nutné používat k explicitní deklaraci proměnné v bash, příkaz se často používá pro pokročilejší úlohy správy proměnných.
Tento tutoriál vám ukáže, jak pracovat s proměnnými a jejich atributy pomocí bash declare
příkaz.
Předpoklady
- Přístup k terminálu/příkazovému řádku.
- Uživatelská oprávnění Sudo.
Bash Declare Syntax
Syntaxe pro použití bash declare
příkaz je:
declare [options] [variable-name]="[value]"
Bash deklaruje možnosti
declare
příkaz pracuje s následujícími obecnými možnostmi:
Možnost | Popis |
---|---|
-f | Deklarujte bash funkci, nikoli proměnnou. |
-F | Zobrazí název a atributy funkce. |
-g | Použijte globální rozsah na všechny operace s proměnnými uvnitř funkce shellu. Tato volba nefunguje mimo funkce shellu. |
-p | Zobrazení možností a atributů proměnných. |
Možnosti v tabulce níže se používají k nastavení atributu na proměnnou.
Možnost | Popis |
---|---|
-a | Proměnná je indexované pole. Tento atribut nelze zrušit. |
-A | Proměnná je asociativní pole. Tento atribut nelze zrušit. |
-i | Hodnota proměnné je celé číslo. Zrušte nastavení atributu pomocí +i . |
-l | Název proměnné se skládá pouze z malých písmen. Zrušte nastavení atributu pomocí +l . |
-n | Proměnná se stane odkazem na název jiné proměnné. Zrušte nastavení atributu pomocí +n . |
-r | Proměnná je pouze pro čtení. Zrušte nastavení atributu pomocí +r . |
-t | Pokud se použije s funkcemi, položka zdědí DEBUG a RETURN pasti z mateřského shellu. Zrušte nastavení atributu pomocí +t . |
-u | Název proměnné se skládá pouze z velkých písmen. Zrušte nastavení atributu pomocí +u . |
-x | Exportujte proměnnou do podřízených procesů, podobně jako příkaz export. Zrušte nastavení atributu pomocí +x . |
Jak deklarovat proměnnou v Bash
Následující příklad ukazuje, jak deklarovat proměnnou s názvem testvar
a přiřadit mu hodnotu 100
.
declare testvar="100"
Když je příkaz úspěšně proveden, nevytváří žádný výstup. Použijte -p
možnost zkontrolovat, zda byla proměnná úspěšně vytvořena. Protože příkaz uvádí všechny proměnné aktuálně přítomné v systému, omezte jej pomocí příkazu grep.
declare -p | grep testvar
Dvojitá pomlčka (--
) znak před názvem proměnné znamená, že proměnná nemá žádné argumenty.
Chcete-li nastavit atribut na proměnnou, použijte syntaxi níže. Příklad nastavuje -x
atribut k testvar
proměnná.
declare -x testvar
Znovu vyhledejte proměnnou a potvrďte, že byl atribut nastaven.
declare -p | grep testvar
Chcete-li atribut odstranit, uveďte před něj znaménko plus (+
) podepsat.
declare +x testvar
Celá čísla
-i
volba omezuje proměnnou pouze na celočíselné hodnoty.
declare -i testvar
Chcete-li to otestovat, pokuste se změnit hodnotu proměnné na řetězec znaků.
declare testvar="example"
Pro zobrazení hodnoty proměnné použijte příkaz echo.
echo $testvar
Výstup zobrazuje hodnotu nula (0
):
Hodnota proměnné může být také výsledkem matematické operace.
declare testvar="3*3"
Ve výše uvedeném příkladu testvar
proměnné byla přidělena hodnota 3*3
. Kontrola hodnoty proměnné pomocí echo
ukazuje výsledek.
echo $testvar
Výsledek matematické operace nemusí být celé číslo.
declare testvar="10/3"
Pokud však má proměnná -i
atribut set, je výsledek zaokrouhlen na nejbližší celé číslo.
echo $testvar
Pokus o deklaraci neceločíselné hodnoty do proměnné při -i
je nastavena možnost, dojde k chybě.
declare testvar="1.5"
Případy
Použijte -u
atribut převést všechna písmena na velká. Níže uvedený příklad deklaruje testvar
a přiřadí jí hodnotu example
.
declare -u testvar="example"
Nicméně, protože -u
byl nastaven atribut, kontrola hodnoty proměnné ukazuje, že má hodnotu EXAMPLE
.
echo $testvar
-l
atribut má opačný účinek.
declare -l testvar="EXAMPLE"
Nastavení převede velká písmena na malá.
echo $testvar
Pouze pro čtení
Nastavte -r
atribut k proměnným, které chcete chránit před náhodnou změnou.
declare -r testvar="100"
Pokus o změnu hodnoty proměnné pouze pro čtení vede k chybě.
declare testvar="50"
Pole
Bash proměnné mohou mít více než jednu hodnotu. Chcete-li přiřadit více hodnot jedné proměnné bash, převeďte ji na pole zadáním:
declare -a testvar
Pokud měla proměnná před převodem hodnotu, je tato hodnota nyní prvním prvkem pole s číslem indexu 0
. Chcete-li zkontrolovat hodnotu prvního prvku v poli proměnných, zadejte:
echo ${testvar[0]}
Deklarujte více prvků pole zadáním indexového čísla prvku.
declare testvar[1]="200"
Vypište všechny prvky pole zadáním:
echo ${testvar[*]}