Navigando nel mondo di Linux BASH Scripting - Parte III
Gli articoli precedenti della serie "Shell Scripting" sono stati molto apprezzati e quindi sto scrivendo questo articolo per estendere il processo di apprendimento senza fine.
- Comprendere i suggerimenti di base sul linguaggio di scripting della shell Linux - Parte I
- 5 script di shell per principianti di Linux per imparare la programmazione di shell - Parte II
Parole chiave di Bash
Una parola chiave è una parola o un simbolo che ha un significato speciale in un linguaggio informatico. I seguenti simboli e parole hanno significati speciali per Bash quando non sono racchiusi tra virgolette e costituiscono la prima parola di un comando.
! esac select }
case fi then [[
do for until ]]
done function while elif
if time else in {
A differenza della maggior parte dei linguaggi informatici, Bash consente di utilizzare parole chiave come nomi di variabili anche se ciò può rendere difficile la lettura degli script. Per mantenere gli script comprensibili, le parole chiave non dovrebbero essere utilizzate per i nomi delle variabili.
Un comando viene implementato nella shell come $(comando). Potrebbe essere necessario includere il percorso completo del comando. ad esempio, $ (/bin/date), per la corretta esecuzione.
Potresti conoscere il percorso di un programma specifico utilizzando il comando "whereis". ad esempio, dov'è la data
[root@tecmint /]# whereis date
date: /bin/date /usr/share/man/man1/date.1.gz
Per ora basta. Non parleremo molto di queste teorie ora. Venendo agli script.
Sposta la directory di lavoro corrente
Passa dalla directory di lavoro corrente a qualsiasi livello superiore fornendo semplicemente il valore numerico alla fine dello script durante l'esecuzione.
#! /bin/bash
LEVEL=$1
for ((i = 1; i <= LEVEL; i++))
do
CDIR=../$CDIR
done
cd $CDIR
echo "You are in: "$PWD
exec /bin/bash
Salva i codici sopra come "up.sh" sul tuo desktop. Rendilo eseguibile (chmod 755 up.sh). Correre:
./up.sh 2 (sposterà la directory di lavoro corrente al livello superiore).
./up.sh 4 (sposterà la directory di lavoro corrente al quarto livello superiore).
Uso e area di applicazione
Negli script più grandi che contengono cartelle all'interno di cartelle all'interno... contenenti librerie, binari, icone, eseguibili, ecc. in diversi location, tu come sviluppatore puoi implementare questo script per spostarti nella posizione desiderata in modo molto automatizzato.
Nota: For è un ciclo nello script precedente e continuerà ad essere eseguito finché i valori non saranno veri per il ciclo.
Uscita del campione
[root@tecmint /]# chmod 755 up
[root@tecmint /]# ./up.sh 2
You are in: /
[root@tecmint /]# ./up.sh 4
You are in: /
[root@tecmint /]#
Scarica up.sh
Crea un file o una cartella casuale
Crea un file (cartella) casuale senza possibilità di duplicazione.
#! /bin/bash
echo "Hello $USER";
echo "$(uptime)" >> "$(date)".txt
echo "Your File is being saved to $(pwd)"
Questo è uno script semplice ma il suo funzionamento non è così semplice.
- ‘echo‘: stampa tutto ciò che è scritto tra virgolette.
- ‘$‘: è una variabile di shell.
- ‘>>‘: l'output viene reindirizzato all'output del comando date seguito dall'estensione txt.
Sappiamo che l'output del comando date è data e ora in ora, minuto, secondo insieme a anno. Quindi potremmo ottenere l'output su un nome di file organizzato senza la possibilità di duplicazione del nome di file. Potrebbe essere molto utile quando l'utente ha bisogno del file creato con timestamp per riferimento futuro.
Uscita del campione
[root@tecmint /]# ./randomfile.sh
Hello server
Your File is being saved to /home/server/Desktop
È possibile visualizzare il file creato sul desktop con la data odierna e l'ora corrente.
[root@tecmint /]# nano Sat\ Jul\ 20\ 13\:51\:52\ IST\ 2013.txt
13:51:52 up 3:54, 1 user, load average: 0.09, 0.12, 0.08
Di seguito viene fornita un'implementazione più dettagliata dello script di cui sopra, che funziona secondo il principio di cui sopra ed è molto utile per raccogliere le informazioni di rete di un server Linux.
Scarica randomfile.sh
Script per raccogliere informazioni di rete
Raccoglie informazioni di rete su un server Linux. Lo script è troppo grande e non è possibile pubblicare qui l'intero codice e l'output dello script. Quindi, è meglio scaricare lo script utilizzando il link di download sottostante e testarlo tu stesso.
Nota: potrebbe essere necessario installare il pacchetto lsb-core e altri pacchetti e dipendenze richiesti. Apt o Yum i pacchetti richiesti. Ovviamente devi essere root per eseguire lo script perché la maggior parte dei comandi utilizzati qui sono configurati per essere eseguiti come root.
Uscita del campione
[root@tecmint /]# ./collectnetworkinfo.sh
The Network Configuration Info Written To network.20-07-13.info.txt. Please email this file to your_name@service_provider.com. ktop
Puoi modificare l'indirizzo email sopra riportato nel tuo script per riceverlo tramite posta. È possibile visualizzare il file generato automaticamente.
Scarica Collectnetworkinfo.sh
Script per convertire MAIUSCOLO in minuscolo
Uno script che converte MAIUSCOLO in minuscolo e reindirizza l'output in un file di testo "small.txt" che può essere modificato secondo necessità.
#!/bin/bash
echo -n "Enter File Name : "
read fileName
if [ ! -f $fileName ]; then
echo "Filename $fileName does not exists"
exit 1
fi
tr '[A-Z]' '[a-z]' < $fileName >> small.txt
Questo script sopra può convertire le maiuscole e minuscole di un file di qualsiasi lunghezza con un solo clic da maiuscolo a minuscolo e viceversa se necessario, con poche modifiche.
Uscita del campione
[root@tecmint /]# ./convertlowercase.sh
Enter File Name : a.txt
Initial File:
A
B
C
D
E
F
G
H
I
J
K
...
Output del nuovo file (small.txt):
a
b
c
d
e
f
g
h
i
j
k
...
Scarica convertlowercase.sh
Programma di calcolatrice semplice
#! /bin/bash
clear
sum=0
i="y"
echo " Enter one no."
read n1
echo "Enter second no."
read n2
while [ $i = "y" ]
do
echo "1.Addition"
echo "2.Subtraction"
echo "3.Multiplication"
echo "4.Division"
echo "Enter your choice"
read ch
case $ch in
1)sum=`expr $n1 + $n2`
echo "Sum ="$sum;;
2)sum=`expr $n1 - $n2`
echo "Sub = "$sum;;
3)sum=`expr $n1 \* $n2`
echo "Mul = "$sum;;
4)sum=`expr $n1 / $n2`
echo "Div = "$sum;;
*)echo "Invalid choice";;
esac
echo "Do u want to continue (y/n)) ?"
read i
if [ $i != "y" ]
then
exit
fi
done
Uscita del campione
[root@tecmint /]# ./simplecalc.sh
Enter one no.
12
Enter second no.
14
1.Addition
2.Subtraction
3.Multiplication
4.Division
Enter your choice
1
Sum =26
Do u want to continue (y/n)) ?
y
1.Addition
2.Subtraction
3.Multiplication
4.Division
Enter your choice
3
mul = 14812
Do u want to continue (y/n)) ?
n
Scarica simplecalc.sh
Allora hai visto quanto è stato facile creare un programma potente per eseguire calcoli in modo così semplice. Non è la fine. Elaboreremo almeno un altro articolo di questa serie, che coprirà un'ampia prospettiva dal punto di vista dell'amministrazione.
È tutto per ora. Essendo il lettore e il miglior critico, non dimenticare di dirci quanto e cosa ti è piaciuto in questo articolo e cosa vuoi vedere nel prossimo articolo. Qualsiasi domanda è altamente gradita nel commento. Fino ad allora rimani sano, sicuro e sintonizzato. Metti "Mi piace e Condividi e aiutaci a diffondere.