Sissejuhatus
Bash-skriptides võib käsu väljundi määramine muutujatele olla mugav, salvestades käskude väljundid ja kasutades neid hiljem.
Selles lühikeses juhendis vaatleme, kuidas saate käsu väljundit Bashis muutujana salvestada.
Muutujate seadistamise põhitõed
Käsu väljundi salvestamine muutujana saavutatakse läbi käsu asendamine. Käsu asendamine on ümbris, mis täidab käsu a-s alamkesta keskkondja asendab mähitud käsu selle keskkonna standardväljundiga, milles käsk käitati. Sellele väljundile saab hiljem viidata, kui see on ühendatud võrdlusmuutujaga!
Käskude asendamine on saavutatav tähiste või sulgudega dollarimärgi abil:
`command`
$(command)
Vaieldakse selle üle, kas `käsk` (seljapulgad) või $(käsk) (dollarimärk ja sulud) tuleks kasutada "parima tavana". $(command)
toimib hästi pesastamisel ja parandab mõnel juhul loetavust, kuid järgnevates näidetes võite kasutada mõlemat süntaksit.
Nagu öeldud – käsu väljundi määramine Bashi muutujale on sama lihtne kui:
VARIABLE=$(command)
echo "${VARIABLE}"
Running ${variable}
on tuntud kui parameetrite laiendamine, ja seda kasutatakse võrdlusmuutujaga seotud väärtuse hindamiseks ja toomiseks.
Vaatame nüüd lihtsat näidet muutuja seadistamisest käsu jaoks väljundi värvi muutmiseks:
#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"
ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"
echo "${GREEN}Paris"
Lõigus oleme kasutanud tput
käsk ja määras nende käskude tagastatud väärtuse värvilise teksti printimiseks. The setaf
muudab esiplaani värvi ning 3 (roheline) ja 9 (oranž) on värvikoodid.
Nüüd liigume edasi teise näite juurde, mis sisaldab mitut tingimust erinevate käskude muutujate seadistamiseks:
#!/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}"
Ülaltoodud skriptis on whoami
käsk tagastab praeguse kasutaja kasutajanime. The uname -a
tagastab süsteemiteabe ja date
tagastab praeguse kellaaja ja kuupäeva.
Märge: Saame muutuja määramise aheldada, lisades ühte pesastatud kõnesse mitu käsku. The CREATE
muutuja sisaldab väljundit touch
käsk, mis omakorda loob faili ja määrab failinime väljundiks date +"%d%m%Y
käsk
Tutvuge meie praktilise ja praktilise Giti õppimise juhendiga, mis sisaldab parimaid tavasid, tööstusharus aktsepteeritud standardeid ja kaasas olevat petulehte. Lõpetage Giti käskude guugeldamine ja tegelikult õppima seda!
Lõpuks lisame a multiline
käsumuutujate määramise kontseptsiooni, lisades kaldkriipsu ()
vahel ls
käsk -l
liputage ainult tekstifailide kuvamiseks *.txt
. Kaldkriips on paomärk, mis teatab kestale, et ta ei tõlgendaks järgmist märki.
aasta echo
käsk, lisasime -e
lipp, et kasutada erimärki, st n
(uus rida), et printida väljund uuele reale.
Pärast skripti täitmist saame järgmise tulemuse:
$ ./variable.sh
Järeldus
Selles lühikeses juhendis oleme vaatlenud, kuidas saate Bashis käsu väljundiks määrata muutuja. Oleme vaatlenud süntaksite erinevust käsu asendamine, märkides ära loetavuse täiustused $(command)
üle backtick-põhise asendamise. Seejärel oleme vaadanud mitmeid näiteid nii lihtsa määramise kui ka aheldatud/pesastatud väljundi määramise kohta.