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.