Vyhledávání na webu

Pochopení a zápis „proměnných Linuxu“ ve skriptování Shell – část 10


Skriptovací jazyk Linuxu byl vždy žhavým tématem a bude i v budoucnu. Skriptovací jazyk Shell je kouzelný a je tak snadné vytvořit program ve skriptovacím jazyce jako v jakémkoli jiném jazyce. Potřebuje to však hluboké znalosti o tom, co děláme a jaký se očekává výsledek.

Všechny články o skriptování shellu, které jsme napsali pro naše čtenáře, jsou vysoce ceněny, včetně posledního „Insight of Linux Variables“. Poslední článek rozšiřujeme na novou úroveň.

Variabilní atributy

Každá proměnná v prostředí Linux má určité možnosti a ty se nazývají „atributy“. Tyto možnosti nebo atributy lze v případě potřeby zapnout Zapnuto a Vypnout podle situace pomocí příkazu „declare “.

Příkladem atributu proměnné je použití přepínače „-i“, který zapne atribut integer pro odpovídající proměnnou. I když je do přepínače „-i“ předána nečíselná hodnota, nevyvolá chybovou zprávu a nevypíše „0“ jako interpretaci celého čísla. Zde je to jasnější z níže uvedeného příkladu.

Deklarujte proměnnou Integer, bill=121

avi@localhost:~$ declare -i bill=121

Vytiskněte hodnotu variabilní bankovky.

avi@localhost:~$ printf "%d\n" "$bill" 

121

Nechť hodnota proměnné je řetězec. Variabilní účet je již deklarován, není třeba jej deklarovat podruhé. Stačí změnit hodnotu proměnné jako.

avi@localhost:~$ bill=tecmint

Nyní znovu vytiskněte hodnotu variabilní bankovky.

avi@localhost:~$ printf "%d\n" "$bill" 

0

Všimněte si „0“ na místě chybové zprávy.

Nyní je otázkou, jak poznat atributy již deklarovaných proměnných?
avi@localhost:~$ declare -p bill 

declare -i bill="121"

Zde přichází na pomoc přepínač -p (zkratka pro tisk).

Znovu, co mám udělat, abych vypnul atributy proměnné?

Abychom přepnuli Vypnuto atributy proměnné, vše, co potřebujeme, je umístit znaménko + (plus) těsně před přepínač. Zde je to jasnější z níže uvedeného příkladu.

Vypněte Vypnout atribut celé číslo pro výše uvedenou proměnnou.

avi@localhost:~$ declare +i bill

Zkontrolujte hodnotu proměnné.

avi@localhost:~$ printf "%d\n" "$bill" 

bash: printf: bill: invalid number
0

Nyní vytiskněte hodnotu proměnné pomocí řetězce přepínače.

avi@localhost:~$ printf "%s\n" "$bill" 

tecmint

Zde ve výše uvedeném příkladu bash nemohl posoudit nečíselnou hodnotu jako chybu, nicméně printf interpretuje, co by mohlo být číslo a co ne.

Proměnné pouze pro čtení

Možná jste slyšeli o paměti pouze pro čtení (ROM), ale co je proměnná pouze pro čtení? Má to nějakou podobnost s ROM?

Proměnné pouze pro čtení, jako je paměť pouze pro čtení, je něco, jehož hodnotu nelze po přiřazení změnit. Proto se nazývá pouze pro čtení. Pro tuto proměnnou nemůžete zapsat, upravit nebo upravit novou hodnotu. Zde je ilustrace s použitím příkladu.

Decalre název proměnné pouze pro čtení (-r), jejíž hodnota je „linux-console.net“.

avi@localhost:~$ declare -r name="linux-console.net"

Vypiš hodnotu výše deklarované proměnné.

avi@localhost:~$ printf "%s\n" "$name" 

linux-console.net

Zkuste změnit hodnotu proměnné.

avi@localhost:~$ declare -r name="Avishek" 

bash: declare: name: readonly variable

Jak bylo uvedeno výše, atributy proměnné pouze pro čtení lze změnit pomocí znaménka „+“.

Export proměnných v Linuxu

Všechny proměnné shellu deklarované ve skriptu shellu jsou dostupné, dokud skript nespustí. Mimo skript proměnná ze skriptu neexistuje. Proces zpřístupnění proměnných mimo skript se nazývá export proměnných.

Proměnnou lze exportovat mimo shell pomocí přepínače declare -x (export), který potvrdí shellu, co jste chtěli exportovat. Přepínač deklarovat export lze použít jako.

avi@localhost:~$ declare -x variable=”Constant_Value”

Všechny změny provedené v proměnné, když je skript spuštěn, se při exportu proměnné mimo skript ztratí. Export proměnné je při skriptování shellu velmi důležitý.

Chceme mít proměnnou, která by měla být pouze pro čtení a dostupná mimo skript, musíme současně použít přepínač -r a přepínač -x.

avi@localhost:~$ declare -rx variable=”Constant_Value”

Proměnné prostředí

Proměnné, které jsou sdíleny mezi programem a programem, který je provádí. Proměnné prostředí lze exportovat, ale nelze k nim přiřadit atributy.

Praktické pochopení výše uvedené teorie. Zde máme dva skripty 0.sh a 1.sh.

0.sh
#!/bin/bash 
declare -rx name=Tecmint 
bash 0.sh 
exit 0

A druhý skript je.

1.sh
#!/bin/bash 
printf "%s\n" "$name" 
name=linux-console.net 
printf "%s\n" "$name"
exit 0

Zde jde o to, že proměnná (jméno) je deklarována jako pouze pro čtení a exportována a ihned poté je volán druhý skript.

Druhý skript právě vytiskl proměnnou z prvního skriptu, který byl exportován v prvním příkazu printf. Ve druhém příkazu printf zobrazuje novou hodnotu přiřazenou proměnné ‚name‘.

Není třeba se obávat, že proměnná byla pouze pro čtení, jak ji lze znovu přiřadit. Nepamatujete si, že „Všechny změny provedené v proměnné, když je skript spuštěn, se ztratí, když je proměnná exportována mimo skript. “

Reference

Příkaz declare povolí všechny níže uvedené přepínače spolu s jejich kombinací.

  1. -a : Deklaruje pole.
  2. -f : Funkce zobrazení a definice.
  3. -F : Zobrazení názvu funkce.
  4. -r : Deklaruje proměnnou jako pouze pro čtení.
  5. -x : Deklarovat proměnnou jako exportovatelnou.
  6. -I : Deklaruje proměnnou jako celé číslo.

To je prozatím vše. V dalším článku budeme diskutovat o způsobech, jak nahradit proměnné pomocí příkazu „eval“ a proměnných již definovaných v bash před uzavřením tohoto tématu. Doufám, že se vám vaše cesta k hloubkovému skriptování líbí. Do té doby zůstaňte naladěni a připojeni k linux-console.net.