BASH -komennon lähtö muuttujalle

Bash Command Output Variable

Erilaisia ​​bash -komentoja on suoritettava päätelaitteesta käyttäjän vaatimusten perusteella. Kun käyttäjä suorittaa minkä tahansa komennon päätelaitteesta, se näyttää tuloksen, jos virheitä ei ole, muuten se näyttää virheilmoituksen. Joskus komennon tulos on tallennettava muuttujaan tulevaa käyttöä varten. Tätä varten voidaan käyttää bashin Shell -komentojen korvausominaisuutta. Tässä opetusohjelmassa näytetään, kuinka voit tallentaa erityyppisiä komentokomentoja muuttujaan tämän ominaisuuden avulla.

muuttuja= $(komento)
muuttuja= $(komento [vaihtoehto…]argumentti1 argumentti2…)
muuttuja= $(/polku/kohteeseen/komento)

TAI



muuttuja=``komento``
muuttuja=``komento [vaihtoehto…]argumentti1 argumentti2…``
muuttuja=`//polku/kohteeseen/komento``

*** Huomautus: Älä käytä välilyöntiä ennen ja jälkeen yhtäläisyysmerkkiä, kun käytät yllä olevia komentoja.



Yhden komennon tulostus muuttujalle

Bash -komentoja voidaan käyttää ilman vaihtoehtoja ja argumentteja niille komennoille, joissa nämä osat ovat valinnaisia. Seuraavat kaksi esimerkkiä esittävät yksinkertaisen komennon korvaamisen käytön.



Esimerkki 1:

bash ` päivämäärä ' -komentoa käytetään näyttämään nykyinen päivämäärä ja kellonaika. Seuraava komentosarja tallentaa `: n tuloksen päivämäärä ' komento $ current_date muuttuja käyttämällä komentojen korvaamista.

$current_date= $(Päivämäärä)
$heitti pois 'Tänään on$ current_date''

Lähtö:



Esimerkki#2:

`pwd` komento näyttää nykyisen työhakemiston polun. Seuraava skripti tallentaa `pwd` komento muuttujaan, $ current_dir ja tämän muuttujan arvo tulostetaan käyttämällä 'kaiku' komento.

$current_dir=``pwd``
$heitti pois 'Nykyinen hakemisto on:$ current_dir''

Lähtö:

Komento vaihtoehto ja argumentti

Vaihtoehto ja argumentti ovat pakollisia joillekin bash -komennoille. Seuraavat esimerkit osoittavat, kuinka voit tallentaa komennon tuloksen, jossa on vaihtoehto ja argumentti muuttujaan.

Esimerkki#3:

Bash ` WC komentoa käytetään minkä tahansa tiedoston rivien, sanojen ja merkkien kokonaismäärän laskemiseen. Tämä komento käyttää vaihtoehtoja -c, -w ja -l ja tiedostonimen argumenttina tuloksen luomiseen. Luo tekstitiedosto nimeltä hedelmät.txt seuraavien tietojen avulla voit testata seuraavan komentosarjan.
hedelmät.txt

hedelmät.txt
Mango
Oranssi
Banaani
Rypäle
Guava
Omena

Suorita seuraavat komennot laskeaksesi ja tallentaaksesi sanojen kokonaismäärän hedelmät.txt tiedosto muuttujaan, $ count_words ja tulosta arvo näppäimellä ` kaiku ' komento.

$count_words=``WC -sisäänhedelmät.txt``
$heitti pois 'Sanoja yhteensä hedelmissä.txt on$ count_words''

Lähtö:

Esimerkki#4:

`leikata` on toinen bash -komento, joka käyttää tuloksen luomiseen vaihtoehtoa ja argumenttia. Luo tekstitiedosto nimeltä weekday.txt seitsemän arkipäivän nimillä seuraavan komentosarjan suorittamiseksi.

weekday.txt

maanantai
tiistai
keskiviikko
torstai
perjantai
Lauantai
sunnuntai

Luo bash -tiedosto nimeltä cmdsub1.sh seuraavan käsikirjoituksen kanssa. Tässä käsikirjoituksessa sillä aikaa silmukkaa käytetään sisällön lukemiseen weekday.txt tiedosto rivi riviltä ja lue kunkin rivin kolme ensimmäistä merkkiä käyttämällä ` leikata` komento. Leikkaamisen jälkeen merkkijonoarvo tallennetaan muuttujaan $ päivä . Seuraavaksi, jos lausetta käytetään tarkistamaan arvo $ päivä On ' Aurinko' tai ei. Tulos tulostuu ' Sunnuntai on loma 'Kun jos ehto on totta, se tulostaa arvon $ päivä .

cmdsub1.sh

#!/bin/bash
Tiedoston nimi='weekday.txt'
sillä aikaa lukealinja;tehdä
päivä=``heitti pois $ rivi | leikata -c 1-3``
jos [ $ päivä=='Aurinko' ]
sitten
heitti pois 'Sunnuntai on loma'
muu
heitti pois $ päivä
olla
tehty<$ tiedostonimi

Suorita komentosarja.

$kissaweekday.txt
$lyödäcmdsub1.sh

Lähtö:

Komennon korvaaminen silmukassa

Voit tallentaa komennon korvaamisen tuloksen mihin tahansa silmukkamuuttujaan, joka näkyy seuraavassa esimerkissä.

Esimerkki#5:

Luo tiedosto nimeltä cmdsub2.sh seuraavalla koodilla. Tässä, ` ls -d * / `-komentoa käytetään hakemaan kaikki hakemistoluettelot nykyisestä hakemistosta. For silmukkaa käytetään tässä jokaisen hakemiston lukemiseen lähdöstä ja tallentamiseen muuttujaan $ dirname joka tulostetaan myöhemmin.

cmdsub2.sh

#!/bin/bash
varten dirname sisään$(ls -d * /)
tehdä
heitti pois ''$ dirname''
tehty

Suorita komentosarja.

$lyödäcmdsub2.sh

Lähtö:

Sisäkkäisten komentojen käyttäminen

Kuinka voit käyttää useita komentoja käyttämällä putkea (|), näkyy edellisessä esimerkissä. Voit kuitenkin käyttää sisäkkäisiä komentoja komentojen korvaamisessa, kun ensimmäisen komennon tulos riippuu toisen komennon ulostulosta ja se toimii päinvastoin kuin pipe (|) -komento.

Sisäkkäisten komentojen syntaksi:

missä=``komento1 ``komento``

Esimerkki#6:

Kaksi käskyä, ` heitti pois `ja` WHO `käytetään tässä esimerkissä sisäkkäisenä komennona. Tässä, ` WHO `komento suoritetaan ensin, joka tulostaa käyttäjän tiedot parhaillaan kirjautuneesta käyttäjästä. Tulos ` WHO `komento suoritetaan` heitti pois 'komento ja' heitti pois `tallentaa muuttujaan $ var . Tässä `` heitti pois `komento riippuu`: n ulostulosta WHO `komento.

$missä=``heitti pois``WHO``
$heitti pois $ var

Lähtö:

Komentopolun käyttäminen

Jos tiedät komennon polun, voit suorittaa komennon määrittämällä komentopolun komennon korvaamista käytettäessä. Seuraava esimerkki näyttää komentopolun käytön.

Esimerkki#7:

'whoami' -komento näyttää kirjautuneen käyttäjän käyttäjänimen. Oletuksena tämä komento on tallennettu / usr/ olen/ kansio. Suorita seuraava komentosarja suorittaaksesi ` huh ' komento polun ja tallennuksen avulla muuttujassa, $ tuotos, ja tulosta arvo $ tuotos .

$lähtö= $(/usr/olen/kuka olen)
$heitti pois $ tuotos

Lähtö:

Komentoriviargumentin käyttäminen

Voit käyttää komentoriviargumenttia komennon kanssa argumenttina komennon korvaamisessa.

Esimerkki#8:

Luo bash -tiedosto nimeltä cmdsub3.sh seuraavan käsikirjoituksen kanssa. ` perusnimi `-komentoa käytetään tässä tiedostonimen hakemiseen 2: statoinenkomentorivin argumentti ja tallennettu muuttujaan, $ tiedostonimi . Tiedämme 1stkomentoriviargumentti on suoritettavan komentosarjan nimi, joka on merkitty $ 0: lla.

#!/bin/bash
Tiedoston nimi=``perusnimi $ 1``
heitti pois 'Tiedoston nimi on$ tiedostonimi. ''

Suorita komentosarja seuraavalla argumentin arvolla.

$lyödäcmdsub3.sh Työpöytä/lämpötila/hello.txt

Tässä, perusnimi polulta, Desktop/temp/hello.txt On ' hello.txt ’. Joten arvo $ tiedostonimi tulee olemaan hello.txt .

Lähtö:

Johtopäätös:

Tässä opetusohjelmassa esitetään erilaisia ​​komentojen korvaamisen käyttötapoja. Jos sinun on käsiteltävä useita komentoja tai luotettavia komentoja ja tallennettava tulos väliaikaisesti, jotta voit tehdä muita tehtäviä myöhemmin, voit käyttää tätä ominaisuutta komentosarjassasi saadaksesi tuloksen.

Lisätietoja videolla: