Seile gjennom Linux-verdenen BASH-skripting - del III


De forrige følgende artiklene i «Shell Scripting»-serien ble satt stor pris på, og derfor skriver jeg denne artikkelen for å utvide den uendelige læringsprosessen.

  1. Forstå grunnleggende Linux Shell-skriptspråktips – del I
  2. 5 Shell-skript for Linux-nybegynnere for å lære Shell-programmering – Del II
Bash nøkkelord

Et søkeord er et ord eller symbol som har en spesiell betydning for et dataspråk. Følgende symboler og ord har spesiell betydning for Bash når de er uten anførselstegn og det første ordet i en kommando.

! 			esac 			select 		} 
case 			fi 			then 		[[ 
do 			for 			until 		]] 
done 			function 		while 		elif
if 			time 			else 		in 		{

I motsetning til de fleste datamaskinspråk, lar Bash søkeord brukes som variabelnavn selv om dette kan gjøre skript vanskelig å lese. For å holde skript forståelige, bør ikke nøkkelord brukes for variabelnavn.

En kommando implementeres i skallet som $(kommando). Du må kanskje inkludere hele kommandobanen. f.eks. $ (/bin/date), for korrekt utførelse.

Du kjenner kanskje banen til et bestemt program ved å bruke «whereis»-kommandoen. f.eks. hvor er datoen

[root@tecmint /]# whereis date
date: /bin/date /usr/share/man/man1/date.1.gz

Det er nok for nå. Vi skal ikke snakke mye om disse teoriene nå. Kommer til Scripts.

Flytt gjeldende arbeidskatalog

Flytt fra gjeldende arbeidskatalog til et hvilket som helst nivå opp ved å bare oppgi den numeriske verdien på slutten av skriptet mens du kjører.

#! /bin/bash 
LEVEL=$1 
for ((i = 1; i <= LEVEL; i++)) 
do 
CDIR=../$CDIR 
done 
cd $CDIR 
echo "You are in: "$PWD 
exec /bin/bash

Lagre kodene ovenfor som "up.sh", på skrivebordet ditt. Gjør den kjørbar (chmod 755 up.sh). Løpe:

./up.sh 2 (vil flytte gjeldende arbeidskatalog til to nivåer opp).
./up.sh 4 (flytter gjeldende arbeidskatalog til fire nivåer opp).

Bruk og bruksområde

I større skript som inneholder mappen inne i mappen inne… som inneholder biblioteker, binærfiler, ikoner, kjørbare filer osv. plassering, kan du som utvikler implementere dette skriptet for å flytte til ønsket sted på en veldig automatisert måte.

Merk: For er en løkke i skriptet ovenfor, og den vil fortsette å kjøre til verdiene er sanne for løkken.

Eksempelutgang
[root@tecmint /]# chmod 755 up
[root@tecmint /]# ./up.sh 2
You are in: /

[root@tecmint /]# ./up.sh 4 
You are in: / 

[root@tecmint /]#

Last ned up.sh

Opprett en tilfeldig fil eller mappe

Lag en tilfeldig fil (mappe) uten sjanse for duplisering.

#! /bin/bash

echo "Hello $USER";
echo "$(uptime)" >> "$(date)".txt
echo "Your File is being saved to $(pwd)"

Dette er et enkelt skript, men det fungerer ikke så enkelt.

  1. 'ekko' : Skriver ut alt som er skrevet innenfor anførselstegnene.
  2. '$' : Er en skallvariabel.
  3. >>’ : Utdata blir omdirigert til utdata av kommandoen dato etterfulgt av txt-utvidelsen.

Vi vet at utdata fra kommandoen dato er dato og tid i time, minutt sekund sammen med år. Derfor kunne vi få utdata på et organisert filnavn uten sjanse for duplisering av filnavn. Det kan være veldig nyttig når brukeren trenger filen opprettet med tidsstempel for fremtidig referanse.

Eksempelutgang
[root@tecmint /]# ./randomfile.sh  
Hello server 
Your File is being saved to /home/server/Desktop

Du kan se filen som er opprettet på skrivebordet med dagens dato og gjeldende klokkeslett.

[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

En mer detaljert implementering av skriptet ovenfor er gitt nedenfor, som fungerer etter prinsippet ovenfor og er svært nyttig for å samle nettverksinformasjonen til en Linux-server.

Last ned randomfile.sh

Skript for å samle nettverksinformasjon

Samler nettverksinformasjon på en Linux-server. Skriptet er for stort og det er ikke mulig å legge ut hele koden og utdataene til skriptet her. Så det er bedre at du kan laste ned skriptet ved å bruke nedlastingslenken nedenfor og teste det selv.

Merk: Du må kanskje installere lsb-core-pakken og andre nødvendige pakker og avhengighet. Apt eller Num de nødvendige pakkene. Selvfølgelig må du være root for å kjøre skriptet fordi de fleste av kommandoene som brukes her er konfigurert til å kjøres som root.

Eksempelutgang
[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

Du kan endre e-postadressen ovenfor i skriptet ditt for å få det sendt til deg. Den automatisk genererte filen kan vises.

Last ned collectnetworkinfo.sh

Skript til Konverterer STORE BOKSTAVER til små bokstaver

Et skript som konverterer STORBOKSTAVER til små bokstaver og omdirigerer utdataene til en tekstfil «small.txt» som kan endres etter behov.

#!/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

Dette skriptet ovenfor kan konvertere store bokstaver for en fil av hvilken som helst lengde med et enkelt klikk fra store bokstaver til små bokstaver og omvendt hvis nødvendig, med liten modifikasjon.

Eksempelutgang
[root@tecmint /]# ./convertlowercase.sh  
Enter File Name : a.txt 

Initial File: 
A
B
C
D
E
F
G
H
I
J
K
...

Ny fil (small.txt) utdata:

a
b
c
d
e
f
g
h
i
j
k
...

Last ned convertlowercase.sh

Enkelt kalkulatorprogram

#! /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
Eksempelutgang
[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

Last ned simplecalc.sh

Så du så hvor enkelt det var å lage et kraftig program som beregninger på en så enkel måte. Det er ikke slutten. Vi vil komme med minst én artikkel til i denne serien, som dekker et bredt perspektiv fra administrasjonssyn.

Det er alt for nå. Å være leseren og den beste kritikeren, ikke glem å fortelle oss hvor mye og hva du likte i denne artikkelen og hva du vil se i den fremtidige artikkelen. Ethvert spørsmål er hjertelig velkommen i kommentarfeltet. Inntil da vær frisk, sikker og innstilt. Lik og Del oss og hjelp oss å spre.