Hoe wordt een variabele onderhouden in Linux?

De commandoregel-shell van het Linux-besturingssysteem is een krachtige tool die, in essentie, een interpreter voor programmeertaal is. Zoals met elke andere programmeertaal, kunt u met de opdrachtshell variabelen gebruiken om gegevens op te slaan, op te halen en te manipuleren.

Variabele waarden instellen en ophalen

In de bash-opdrachtshell, de standaardshell die in Linux wordt gebruikt, kun je een variabele instellen met de algemene syntaxis NAME = VALUE . U kunt bijvoorbeeld achter de opdrachtprompt typen:

 x = 5 

En een variabele met de naam x wordt ingesteld op de numerieke waarde 5 . Variabelenamen kunnen in hoofdletters of kleine letters zijn, of een combinatie van beide, en ze zijn hoofdlettergevoelig. Bij het instellen van de variabele mogen er geen spaties zijn tussen de naam van de variabele, het teken en de waarde.

Het is niet nodig de variabele vooraf te declareren of het gegevenstype op te geven. Bash bepaalt het type variabele op basis van de waarde.

Onze variabele kan bijvoorbeeld ook een string bevatten:

 x = Hallo 

Voor een eenvoudige tekenreeks is het niet nodig om de tekenreeks tussen aanhalingstekens te plaatsen, maar als de tekenreeks spaties bevat, moet u deze omringen met dubbele aanhalingstekens:

 x = "Hallo, wereld!" 

Als u de waarde van uw variabele wilt ophalen, voegt u deze toe met een dollarteken. Als u bijvoorbeeld de waarde van x wilt bekijken met behulp van de echo- opdracht, voert u het volgende uit:

 echo $ x 

Welke uitgangen:

 Hallo Wereld! 

Wat hier gebeurt, is dat de shell de waarde van je variabele neemt en deze invoegt in je opdracht. Je kunt overal in je opdracht naar de variabele verwijzen, zelfs binnen een string met een dubbele aanhalingstekens:

 echo "$ x $ x Kan iemand me horen? Ik zei, $ x" 
 Hallo Wereld! Hallo Wereld! Kan iemand mij horen? Ik zei: Hallo, wereld! 

Tip: variabelen worden alleen in een string geïnterpreteerd als u dubbele aanhalingstekens gebruikt. Als u enkele aanhalingstekens gebruikt, wordt de naam van de variabele letterlijk geïnterpreteerd, zonder interpretatie:

 echo '$ x $ x Kan iemand me horen? Ik zei, $ x ' 
 $ x $ x Kan iemand me horen? Ik zei, $ x 

De waarde van een variabele instellen als de uitvoer van een opdracht

Gebruik het formulier om de waarde van uw variabele in te stellen als de uitvoer van een specifieke opdracht:

 NAME = $ (OPDRACHT) 

Als uw gebruikersnaam bijvoorbeeld "steven" is, voert het uitvoeren van de opdracht whoami de waarde steven . U kunt dit op een variabele instellen:

 myname = $ (whoami) 
 echo $ myname 
 steven 

U kunt dit voor elke opdracht doen. Als de opdracht argumenten bevat, hoeft u de opdracht niet tussen aanhalingstekens te plaatsen. Alles binnen de haakjes wordt als een opdracht uitgevoerd:

 x = "Hallo, wereld!" 
 x = $ (echo $ x $ x $ x) 
 echo $ x 
 Hallo, Wereld Hallo, Wereld Hallo, Wereld! 

Variabelen gebruiken in een eenvoudig script

Laten we eens kijken hoe we een variabele kunnen gebruiken in een eenvoudig back-upscript. Laten we zeggen dat u een back-up wilt maken van alles in de directorydocumenten in uw homedirectory. Het script archiveert alles in die map en eventuele directory's die het bevat in een tar-archief waarvan de naam de huidige datum bevat. Laten we de back-ups in een map houden met de naam back-ups in uw thuismap (we gaan ervan uit dat deze map al bestaat. Als dit niet het geval is, kunt u mkdir ~ / backups uitvoeren om het te maken).

Open een teksteditor en plaats deze tekst in een nieuw bestand:

 #! / bin / bash MYFILENAME = ~ / backups / documenten-backup - $ (datum +% Y-% m-% d) .tar.gz 

tar -czf $ OUTPUTFILE ~ / documenten

Laten we naar elke regel van dit script kijken. De eerste regel, #! / Bin / bash, verklaart het script als een uitvoerbaar bestand en geeft aan dat het moet worden uitgevoerd met / bin / bash, het uitvoerbare bestand van de bash-opdrachtshell. Opmerking: het bestand zal niet uitvoerbaar zijn tot we het bestand chmod later, maar deze regel is vereist in een goed bash-script.

De tweede regel stelt de variabele MYFILENAME in, die de naam van het archief met onze back-up bevat. Het eerste deel van de bestandsnaam is onze back-upmap, ~ / backups .

Opmerking: het tilde-teken ( ~ ) is een speciale mapnaam die altijd onze thuismap vertegenwoordigt.)

Vervolgens hebben we het begin van de bestandsnaam, documenten-backup- . Vervolgens voegen we de huidige datum in met de datumopdracht, het plus-symbool en de tekenreeks % Y-% m-% d . Als de datum bijvoorbeeld 23 februari 2015 was, zou dat 2015-02-23 zijn .

Ten slotte gebruiken we de extensie .tar.gz, wat de juiste bestandsnaamextensie is voor een gzip-gecomprimeerd tar-bestand. Dus als we dit script op 23 februari 2015 hebben uitgevoerd, zou de waarde van MYFILENAME ~ / backups / documents-backup-2015-02-23.tar.gz zijn . Als we het op 7 mei 2015 hebben uitgevoerd, is de waarde ~ / backups / documents-backup-2015-05-07.tar.gz .

De derde regel is de opdracht waarmee het archief wordt gemaakt. We gebruiken de opdracht tar met de optie -czf, waarmee ( c ) een gzipped-archief ( z ) wordt gemaakt met de opgegeven bestandsnaam ( f ). Vervolgens geven we de bestandsnaam van het archief op door te verwijzen naar de variabele die we hebben gemaakt in regel 2, UITVOERBESTAND . Ten slotte vertellen we tar wat het is dat we willen archiveren: de directory ~ / documenten .

Als u het script wilt uitvoeren, slaat u het tekstbestand op in uw basismap (of waar u maar wilt) en geeft u het een toepasselijke naam, bijvoorbeeld backup-my-docs . Het is niet nodig om het een extensie te geven. Sluit de teksteditor af en maak het bestand uitvoerbaar met de opdracht chmod + x, bijvoorbeeld:

 chmod + x ~ / backup-my-docs 

Nu kunt u het script uitvoeren. Als het script zich bijvoorbeeld in uw werkdirectory bevindt, kunt u het uitvoeren met:

 ./backup-my-docs 

Of, als het in uw homedirectory staat, kunt u het vanuit elke directory uitvoeren met de volgende opdracht:

 ~ / Backup-my-docs