Ricerca nel sito web

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.

  1. Comprendere i suggerimenti di base sul linguaggio di scripting della shell Linux - Parte I
  2. 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.

  1. echo‘: stampa tutto ciò che è scritto tra virgolette.
  2. $‘: è una variabile di shell.
  3. >>‘: 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.