logo

Bashovy proměnné

Proměnné jsou nezbytnou součástí programování, nebo můžeme říci, že jsou duchem programovacího jazyka. Proměnné určují umístění paměti pomocí znaků, čísel a alfanumerických znaků. Používají se k odkazování a manipulaci v počítačovém programu.

Jaké jsou proměnné?

Proměnné jsou kontejnery, které ukládají data nebo užitečnou informaci jako hodnotu uvnitř nich. Níže je syntaxe proměnné:

 Variable_name =value 

Proměnná je kombinovaná forma dvou slov, tj. proměnná + možnost, což znamená, že její hodnotu lze změnit a lze ji použít vícekrát.

Java má další

Proměnná je známá jako dočasné úložiště pro jakýkoli druh dat, jako je celé číslo, float, char atd. Název proměnné může zahrnovat abecedy, číslice a podtržítko a jeho název lze začínat pouze abecedou a podtržítkem.

Poznámka: Nemůžeme definovat název proměnné začínající libovolnou číslicí.

Co jsou proměnné Bash?

Nemůžeme použít bash proměnné, aniž bychom měli správné informace ( syntaxe, datové typy, typy, pracovní ) o tom, pojďme si tedy projít tento stručný návod, abychom měli správný přehled o Bashových proměnných.

Nejprve se seznamte se syntaxí.

Syntax:

 Variable_name=value 

Sada pravidel pro definování Bash proměnných:

  1. Při čtení nebo tisku proměnné uveďte před název proměnné znak dolaru ($).
  2. Při nastavování proměnné s libovolnou hodnotou vynechejte znak dolaru ($).
  3. Název proměnné může být alfanumerický nebo může být napsán s podtržítkem (_).
  4. V názvu proměnné se rozlišují velká a malá písmena: x a X jsou považovány za dvě různé proměnné.
  5. název proměnné může být zapsán buď UPPER_CASE nebo LOWER_CASE písmeny nebo kombinací obou, jak chcete.
  6. Proměnná může být umístěna kdekoli v Bash skriptu nebo na příkazovém řádku, protože za běhu ji Bash nahradí přiřazenou hodnotou. Bylo to možné díky provedení substituce před spuštěním příkazu.
  7. Na žádné straně rovnítka (=) by mezi názvem proměnné a její hodnotou neměly být mezery. Následuje několik příkladů Neplatné proměnné s mezerami (označenými tečkami ...) mezi nimi, jak je uvedeno níže:
    var1=...proměnná1
    var2...=proměnná2
    var3...=...proměnná3
  8. Není potřeba používat žádné uvozovky, jednoduché nebo dvojité, k definování proměnné s hodnotou jednoho znaku, jako je např var1=proměnná . Chcete-li vložit více slov nebo řetězec jako jednu položku do proměnné, použijte k uzavření obsahu do této proměnné uvozovky.
    • Single Quote ('') pomáhá zacházet s každou postavou.
    • Dvojitá uvozovka ('') pomáhá provést substituci.

Typy dat

Ve formálních programovacích jazycích musíte definovat datový typ libovolné proměnné v době deklarace proměnné. Například:

 int year=2012 char comp_name='jtp' 

Ale v případě Bash nemusíte v době deklarace proměnné definovat datový typ žádné proměnné. Bash proměnné jsou netypizovaný , což znamená, že stačí zadat název proměnné přiřazením její hodnoty a automaticky vezme v úvahu tento datový typ.

Taková, že pokud proměnné přiřadíte jakoukoli číselnou hodnotu, bude fungovat jako celé číslo a pokud proměnné přiřadíte znakovou hodnotu, bude to String.

 year=2012 comp_name=jtp 

pomocí příkazu echo je přečtěte tak, že před jejich jménem přiřadíte znak $, např

echo $rok
echo $name

Typy Bashových proměnných

V shellu nebo v jakémkoli unixovém systému existují dva typy proměnných.

  1. Systémově definované proměnné
  2. Uživatelsky definované proměnné

1. Systémem definované proměnné: Toto jsou předdefinované proměnné, jak jsou vytvářeny a udržovány samotným operačním systémem LINUX. Jejich standardní konvence je, že obecně jsou definovány velkými písmeny, tj. VELKÁ_PÍSMENA. Kdykoli tedy vidíte proměnnou definovanou velkými písmeny, s největší pravděpodobností se jedná o systémové proměnné.

Toto jsou následující proměnné definované systémem, jak je uvedeno níže:

1. BASH představuje Název Shell.

Příklad:

 BASH=/usr/bin/bash 

2. BASH_VERSION určuje verzi shellu, kterou Bash drží.

Příklad:

 BASH_VERSION=4.2.46(2) 

3. SLOUPCE uveďte ne. sloupců pro naši obrazovku.

Příklad:

 COLUMNS=80 

4. DOMŮ určuje domovský adresář uživatele.

Příklad:

 HOME=/home/jatpoint 

5. LOGNAME určuje přihlašovací uživatelské jméno.

Příklad:

 LOGNAME=javatpoint 

6. OSTYPE říká typ OS.

Příklad:

 OSTYPE=linux-gnu 

7. OZP představuje aktuální pracovní adresář.

Příklad:

 PWD=/home/javatpoint 

8. UŽIVATELSKÉ JMÉNO udává jméno aktuálně přihlášeného uživatele.

Příklad:

 USERNAME=javatpoint 

Chcete-li znát seznam těchto proměnných ve vašem systému, zadejte příkazy set, env , a printenv na terminálu příkazového řádku takto:

1. Zadáním soubor příkaz.

Výstup:

Bashovy proměnné

2. Zadáním env příkaz

Výstup:

Bashovy proměnné

3. Zadáním příkazu printenv

Výstup:

Bashovy proměnné

Nazvěme tyto proměnné prostřednictvím Bash Shell. Následují uvedené kroky:

Krok 1: Vytvořte skript s názvem Bash_sdvar a zadejte následující kód na konzole Bash takto:

 #! /bin/bash # Bash System-defined Variables echo $HOME # Home Directory echo $PWD # current working directory echo $BASH # Bash shell name echo $BASH_VERSION # Bash shell Version echo $LOGNAME # Name of the Login User echo $OSTYPE # Type of OS 

Krok 2. Podívejte se na níže uvedenou konzoli Bash:

Bashovy proměnné

Krok 3 Uložte a spusťte skript. Zobrazí výstup, jak můžete vidět na obrázku níže.

Výstup:

Bashovy proměnné

2. Uživatelem definované proměnné: Tyto proměnné vytváří a udržuje uživatel. Obecně jsou tyto typy proměnných definovány v LOWER_CASES. Neexistuje žádné striktní pravidlo pro zápis těchto proměnných malými písmeny. Můžeme je psát i velkými písmeny.

Vytvořme Bash Script pro definování těchto proměnných. Postupujte podle níže uvedených kroků:

Krok 1. Vytvořte skript pojmenovaný podle bash_yard a zadejte následující kód na Bash Console:

 #! /bin/bash # User-Defined Variables name=Peter ROLL_NO=5245325 echo 'The student name is $name and his Roll number is $ROLL_NO.' 

Krok 2. Viz kód na Bash Console.

Bashovy proměnné

Krok 3 Uložte a spusťte skript.

Výstup:

Bashovy proměnné

Práce s Bashovými proměnnými

Po základní ukázce proměnných pojďme vědět, jak fungují?

Pro proměnnou v Bash obvykle provádíme dvě akce, jak je uvedeno níže:

  • nastavení hodnoty pro Proměnnou
  • čtení hodnoty pro to.

Hodnotu proměnné lze nastavit různými způsoby, přičemž nejběžnějším způsobem je přímé nastavení hodnoty. Pro načtení proměnné můžeme umístit její název (předpona se znakem $) kamkoli ve skriptu.

Bash nejprve zkontroluje všechny názvy proměnných, jako by byly přítomny ve skriptu. Poté interpretuje každý řádek našeho skriptu. Po identifikaci každé proměnné nahradí název proměnné přiřazenou hodnotou. Koneckonců, interpretuje/spouští tento řádek kódu a pokračuje v tomto procesu pro každý kódovaný řádek našeho skriptu.

POZNÁMKA: Oba druhy proměnných v Bash (diskutovali jsme) fungují na terminálu i na skriptu Bash. Podívejme se na jejich práci na terminálu a Bash prostřednictvím jednoduchého příkladu:

Příklad: Zavolejte uživatelské jméno pomocí XYZ, jeho umístění, na kterém aktuálně pracuje, a verze Bash Shell, kterou používá pro Bash Scripting.

1. Práce na terminálu

Bashovy proměnné

2. Práce na Bash Shell

Viz níže uvedený skript pojmenovaný Bash_Var:

Bashovy proměnné

Ve 3rdřádek skriptu , deklarovali jsme proměnnou USER_NAME pro uložení uživatelského jména XYZ jako jeho hodnotu.

V posledních dvou řádcích , vytiskli jsme zamýšlenou zprávu pomocí echo příkaz.

V této zprávě jsou dvě proměnné a jeden příkaz. Každému z nich předchází znak dolaru ($), kde:

    USER_NAMEje uživatelem definovaná proměnná pro volání uživatelského jména,BASH_VERSIONje systémově definovaná proměnná, kterou si shell sám říká. Používá se k tisku verze Bash Shell,OZPpříkaz se používá k vytištění aktuální polohy uživatele.

Pro lepší pochopení vytvořte tento skript podle zadaného kódu:

 #! /bin/bash #Bash Variables USER_NAME=XYZ echo Hey there! $USER_NAME is any user currently working on the directory $PWD with Bash Shell Version $BASH_VERSION. 

Zobrazí výstup, jak můžete vidět na následujícím obrázku:

Výstup:

Bashovy proměnné

Existuje několik dalších příkladů pro procvičování proměnných na terminálu i Bash Shell. Dodržováním sada pravidel (diskutováno dříve) procvičte si proměnné takto:

A. Použití terminálu příkazového řádku

1. Nastavení proměnných

Bashovy proměnné

2. Čtení a odkazování na proměnné

Bash proměnné

3. Neplatné proměnné

Bashovy proměnné

4. Kombinace dvou řetězcových proměnných

Bash proměnné

5. Zřetězení řetězců s proměnnými

Bashovy proměnné

POZNÁMKA: Nepoužívejte jednoduché uvozovky pro kombinování dvou proměnných a také pro zřetězení řetězců s proměnnými. Takové, že pokud řetězce zřetězíte tak, že je uzavřete do jednoduchých uvozovek, nebude se vám je číst, jak můžete vidět na obrázku níže:

Bashovy proměnné

B. Použití skriptu Bash:

Je to příklad kombinování proměnných typu String.

Bashovy proměnné

Výstup:

Bash proměnné

Argumenty příkazového řádku

Argumenty příkazového řádku se používají ke zvýšení dynamiky skriptu předáním vstupu do kódu. Tyto argumenty předáme za běhu skriptu v následujícím tvaru:

 ./script_name arg1 arg2 arg3..... 

Mezi názvem skriptu a všemi předávanými argumenty by neměla být žádná mezera.

Jak používat argumenty příkazového řádku?

V prostředí Bash se používají s odkazem na následující výchozí parametry nebo speciální proměnné.

    0 $určuje název skriptu, který má být vyvolán.$ 1 - $ 9ukládá názvy prvních 9 argumentů nebo může být použit jako pozice argumentů.# $udává celkový počet (počet) argumentů předávaných skriptu.$*ukládá všechny argumenty příkazového řádku jejich spojením.$@ukládá seznam argumentů jako pole.$?určuje ID procesu aktuálního skriptu.$$určuje stav ukončení posledního příkazu nebo posledního procesu provádění.$!zobrazuje ID poslední úlohy na pozadí.

Níže jsou uvedeny dvě metody, které používáme pro předávání argumentů příkazového řádku:

Metoda 1: Použití čísla pozice

Je to první způsob přístupu k argumentům pomocí výchozích parametrů (...). Níže uvedený obrázek to vysvětluje:

Bash proměnné

Výstup:

Bashovy proměnné

Metoda 2: Použití pole.

Je to druhý způsob předávání argumentů jako pole. Chcete-li použít tuto metodu, postupujte podle daného algoritmu.

Krok 1: Vytvořte Bash skript.

Krok 2: Deklarujte libovolný název proměnné a přiřaďte její hodnotu jako $a v následující podobě:

 variable_name=('$@') 

Kde $@ je výchozí argument, který se používá k uložení argumentů (předáme) jako pole.

Krok 3: Zobrazte argumenty definováním jejich indexu pole v následujícím tvaru:

 ${variable_name[i]} 

Krok 4: Uložte a zavřete skript.

Krok 5: Spusťte skript předáním argumentů.

Podívejte se na následující program:

Program:

 #!/bin/bash args=('$@') echo ${args[0]} ${args[1]} ${args[2]} ${args[3]} 

Na konzoli Bash:

Bashovy proměnné

Výstup:

Bash proměnné

Náhrada příkazů

Podle oficiální dokumentace Bash

'Náhrada příkazu umožňuje výstup příkazu nahradit příkaz samotný. Bash provádí expanzi spuštěním příkazu v prostředí subshell a nahrazením náhrady příkazu standardním výstupem příkazu, přičemž jsou odstraněny všechny koncové nové řádky. Vložené nové řádky nejsou odstraněny, ale mohou být odstraněny během dělení slov.'

Náhrada příkazů se týká rozšíření, které pro nás provádí Bash. Převezme výstup příkazu Bash, uloží do proměnné (obecně) a zobrazí zpět s echem.

Náhrada příkazů nabízí flexibilitu dat, pokud jde o skriptování a přiřazení proměnných. Je to jednoduché a snadné pro výstup jediného příkazového řádku. V případě, že výstup překročí několik řádků, pak jsou nově koncové řádky odstraněny a celý obsah výstupu skončí na jediném řádku.

Podívejte se na syntaxi pro použití:

Syntax

Klasickou formou substituce příkazů v proměnné nebo substituce příkazů je použití zpětných uvozovek (`...`), jak je uvedeno níže:

 variable_name=`command_name` variable_name=`command_name [option...] argument1 argument2...` variable_name=`/path/to/command` 

Nyní provedeme substituci příkazů tak, že příkazy uzavřeme do hranatých závorek (před kterými je znak dolaru ($)). Podívej se:

 variable_name=$(command_name) variable_name=$(command_name [option...] argument1 argument2...) variable_name=$(path/to/command) 

Udělejme tedy substituci příkazů s příkladem podle diskuse.

V tomto příkladu nahrazujeme jeden příkaz ls v proměnné. Viz terminál.

Bash proměnné

Řádek 1: Bez substituce příkazů je výstup rozšířen na více řádků.

Řádek 2 a 3: Při substituci příkazů je výstup ukončen na jednom řádku (ušetřeno místo odstraněním nově vlečených řádků).

Následuje Bash Script pro testování substituce příkazů.

Program:

 #! /bin/bash # command substitution lsResult=$(ls) echo 'My files are:' $lsResult 

Podívejte se na Bash Console:

Bashovy proměnné

Výstup:

Bashovy proměnné