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.
- Forstå grunnleggende Linux Shell-skriptspråktips – del I
- 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.
- 'ekko' : Skriver ut alt som er skrevet innenfor anførselstegnene.
- '$' : Er en skallvariabel.
- ‘>>’ : 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.