Kuidas salvestada Bashis käsuväljundit muutujana? PlatoBlockchaini andmete luure. Vertikaalne otsing. Ai.

Kuidas salvestada Bashis käsuväljundit muutujana?

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.

Ajatempel:

Veel alates Stackabus