V tomto článku se podíváme na to, k čemu slouží deklarace příkaz v bash a jak jej používat. Prohlásit je vestavěný příkaz bash, který poskytuje vašim skriptům chování podobné typu.
Pokud máte nějaké předchozí zkušenosti s jakýmkoli programovacím jazykem, jako je Java , C možná víte, co je to typ systému. Bohužel bash nemá silný typový systém. Pomocí deklarovat můžete získat chování podobné typu a můžete nastavit atributy pro vaše proměnné.
$ type -a declare declare is a shell builtin
Projdeme si některé užitečné funkce deklarovat nabídky. Dobré místo, kde začít a seznámit se s deklarací je buď pomocí příkazu help nebo manpage bash.
$ help declare declare: declare [-aAfFgiIlnrtux] [-p] [name[=value] ...] Set variable values and attributes. Declare variables and give them attributes. If no NAMEs are given, display the attributes and values of all variables. Options: -f restrict action or display to function names and definitions -F restrict the display to function names only (plus line number and source file when debugging) -g create global variables when used in a shell function; otherwise ignored -I if creating a local variable, inherit the attributes and value of a variable with the same name at a previous scope -p display the attributes and value of each NAME ...
Jak deklarovat typ celých čísel
Pro deklaraci proměnné typu integer použijte -i
vlajka. Pokud se podíváte na níže uvedený příklad, můžete vidět, že proměnná stáří je deklarována jako celočíselný typ. Když se pokusíte přiřadit hodnoty jiného typu (řetězce ) můžete očekávat, že vrátí chybu „Není správný typ ” ale zde místo vyvolání bude chybová proměnná přiřazena jako nula (0 ). Ano, toto je zvláštní chování a není to takové, jaké by člověk očekával.
$ declare -i num=10 $ echo $num $ num=string # Reassigning Interger type with string $ echo $num ⇒ Zero will be the output
Jak deklarovat proměnné pouze pro čtení
Pouze pro čtení – Toto je programovací termín, který znamená, že proměnné je přiřazena hodnota a nikdy ji nemůže změnit programátor ani stroj. Zůstává stejné po celou dobu životního cyklu programu.
Aby byla vaše proměnná konstantní (pouze pro čtení ) použijte -r
vlajka.
$ declare -r num=10 $ num=11 -bash: no: readonly variable
Alternativní metodou, jak vytvořit proměnnou pouze pro čtení, je použití pouze pro čtení klíčové slovo.
$ readonly os=ubuntu $ os=arch -bash: os: readonly variable
Převod malých a velkých písmen v systému Linux
Při přiřazování proměnné bash ji můžete převést z malých na velká písmena a naopak pomocí -l
(malá písmena) a -u
příznak (velká písmena).
$ declare -l name="LINUX" $ declare -u name1="linux" $ echo $name $name1
Jak deklarovat indexované / asociativní pole
Bash podporuje dva typy polí. Indexováno pole a asociativní pole. K deklaraci polí použijte -a
(Indexované pole) a -A
(asociativní pole) příznak. Indexované pole můžete vytvořit bez použití deklarace ale k vytvoření asociativního pole musíte použít příkaz deklarovat s -A
vlajka.
$ declare -a os_name=(Ubuntu Mint Kubuntu lubuntu Debian) $ echo ${os_name[@]} $ declare -A os_family $ os_family["Redhat"]="Fedora" $ os_family["Arch"]="Manjaro" $ os_family["Debian"]="Ubuntu" $ echo ${os_family[@]}
Export proměnných do podsložek
Pokud máte nějaké zkušenosti s bash, mohli jste nebo viděli lidi, kteří používají příkaz export k exportu deklarovaných proměnných do subshellů v jejich relacích skriptu nebo shellu. Můžeme to udělat pomocí deklarovat také příkaz.
Pro export byste měli použít -x
příznak a +x
flag odstraní atribut z exportu.
$ declare -x name=ShellTips $ sh -c “echo $name”
Zkontrolujte, zda jsou atributy definovány nebo ne
Můžeme zkontrolovat, zda atribut (proměnná ) je nebo není definován pomocí -p
vlajka.
# Defining a variable $ a=10;b=20;c=30 # Check if a variable is defined or not $ declare -p a # single variable check declare -- a="10" $ declare -p a b c # check multiple variables declare -- a="10" declare -- b="20" declare -- c="30"
Uvidíte dvě pomlčky --
po deklaraci klíčového slova. Slouží k zobrazení typu proměnné jako declare -a (pole), deklarujte -n (názevref). Pokud není nic deklarováno, zobrazí se pouze --
.
$ declare -a Iarray $ declare -A arrray $ declare -p Iarray Asarray declare -a Iarray declare -A Asarray
Pokud se pokusíte najít nedeklarovanou proměnnou, bude vyvolána následující chyba.
$ declare -p Iarray1 -bash: declare: Iarray1: not found
Jak zkontrolovat definici funkce
Můžete použít -F
a -f
flag, abyste viděli, zda je funkce deklarována, a definici funkce. Vytvářím jednoduchou funkci hello world.
$ function hello_world(){ echo "Linux Geeks"; } $ declare -F
Chcete-li získat definici funkce, můžete použít -f
vlajka. Pokud nezadáte žádné jméno funkce, vytisknou se všechny načtené funkce a ze seznamu můžete získat svou definici funkce.
$ declare -f hello_world $ declare -f
To je pro tento článek vše. Brzy se dočkáme dalšího zajímavého článku.