Kako shraniti izhod ukaza kot spremenljivko v Bashu? Podatkovna inteligenca PlatoBlockchain. Navpično iskanje. Ai.

Kako shraniti izhod ukaza kot spremenljivko v Bashu?

Predstavitev

V skriptih bash je lahko dodeljevanje izhoda ukaza spremenljivkam priročno s shranjevanjem izhodov ukazov in njihovo kasnejšo uporabo.

V tem kratkem vodniku si bomo ogledali, kako lahko shranite izhod ukaza kot spremenljivko v Bash.

Osnove za nastavitev spremenljivk

Shranjevanje izhoda ukaza kot spremenljivke je doseženo z zamenjava ukazov. Zamenjava ukaza je ovoj, ki izvede ukaz v a subshell okolje, in zamenja zavit ukaz s standardnim izhodom okolja, v katerem je bil ukaz zagnan. Na ta izhod se lahko pozneje sklicuje, če je povezan z referenčno spremenljivko!

Zamenjavo ukaza lahko dosežete s povratnimi kljukicami ali znakom za dolar z oklepaji:

`command`

$(command)

Obstaja razprava o tem, ali `ukaz` (nazaj) oz $(ukaz) (znak za dolar in oklepaj) je treba uporabiti kot »najboljšo prakso«. $(command) dobro deluje pri gnezdenju in v nekaterih primerih izboljša berljivost, vendar lahko v naslednjih primerih uporabite katero koli sintakso.

Kot rečeno – dodelitev izhoda ukaza spremenljivki v Bashu je tako preprosta kot:

VARIABLE=$(command)
echo "${VARIABLE}"

Tek ${variable} je znan kot razširitev parametrovin se uporablja za ovrednotenje in pridobivanje vrednosti, povezane z referenčno spremenljivko.

Oglejmo si zdaj preprost primer nastavitve spremenljivke za ukaz za spreminjanje barve izpisa:

#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"

ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"

echo "${GREEN}Paris"

V izrezku smo uporabili tput in dodelil vrnjeno vrednost teh ukazov za tiskanje barvitega besedila. The setaf spremeni barvo ospredja, 3 (zelena) in 9 (oranžna) pa sta barvni kodi.

Zdaj bomo prešli na drug primer, ki vsebuje več pogojev za nastavitev spremenljivk za različne ukaze:

#!/bin/bash
PERSON=$(whoami)
echo -e "Hey ${PERSON}! I am Charlien"

DETAILS=$(uname -a)
echo -e "You're running this script on:n${DETAILS}n"

DATES=$(date)
echo -e "The script is being run on:n${DATES}n"

CREATE=$(touch $(date +"%d%m%Y").txt)
echo -e "A text file logging this run is created.${CREATE}n"

LOCATION=$(ls 
  -l *txt)
echo -e "Saved text file at: ${LOCATION}"

V zgornjem scenariju je whoami ukaz vrne uporabniško ime trenutnega uporabnika. The uname -a vrne sistemske informacije in date vrne trenutni čas in datum.

Opomba: Dodeljevanje spremenljivk lahko verižimo z dodajanjem več ukazov v enem samem ugnezdenem klicu. The CREATE spremenljivka vsebuje izpis touch ukaz, ki nato ustvari datoteko in nastavi ime datoteke na izhod datoteke date +"%d%m%Y ukaz.

Oglejte si naš praktični, praktični vodnik za učenje Gita z najboljšimi praksami, standardi, sprejetimi v panogi, in priloženo goljufijo. Nehajte Googlati ukaze Git in pravzaprav naučiti it!

Na koncu dodamo še a multiline koncept dodelitve spremenljivke ukaza z dodajanjem poševnice nazaj () med ls ukaz -l zastavico za prikaz samo besedilnih datotek z uporabo *.txt. Poševnica nazaj je ubežni znak, ki obvešča lupino, naj ne interpretira naslednjega znaka.

v echo smo dodali ukaz -e zastavica za uporabo posebnega znaka, tj. n (nova vrstica), da natisnete izpis v novi vrstici.

Po izvedbi skripta dobimo naslednji rezultat:

$ ./variable.sh

zaključek

V tem kratkem vodniku smo si ogledali, kako lahko nastavite izhod ukaza na spremenljivko v Bashu. Ogledali smo si razliko med sintaksami za zamenjava ukazov, pri čemer ugotavlja izboljšave berljivosti $(command) nad zamenjavo na podlagi povratne kljukice. Nato smo si ogledali več primerov enostavne dodelitve in verižne/gnezdene dodelitve izhoda.

Časovni žig:

Več od Stackabuse