Ú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[*]}