Segelen duerch d'Welt vu Linux BASH Scripting - Deel III


Déi Virdrun folgend Artikele vun der 'Shell Scripting'Serie goufen héich appréciéiert an dofir schreiwen ech dësen Artikel fir den ni ophalende Prozess vum Léieren ze verlängeren.

  1. Basis Linux Shell Skriptsprooch Tipps verstoen - Deel I
  2. 5 Shell Scripte fir Linux Newbies fir Shell Programméierung ze léieren - Deel II

E Schlësselwuert ass e Wuert oder Symbol dat eng speziell Bedeitung fir eng Computersprooch huet. Déi folgend Symboler a Wierder hu speziell Bedeitunge fir Bash wann se net zitéiert sinn an dat éischt Wuert vun engem Kommando.

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

Am Géigesaz zu de meeschte Computersproochen erlaabt Bash Schlësselwierder als Variabel Nimm ze benotzen, och wann dëst Skripte schwéier ze liesen ka maachen. Fir Skripte verständlech ze halen, sollten Schlësselwierder net fir variabel Nimm benotzt ginn.

E Kommando gëtt an der Shell als $(Kommando) implementéiert. Dir musst vläicht de komplette Wee vum Kommando enthalen. e.g., & # 36 (/ bin/Datum), fir richteg Ausféierung.

Dir wësst vläicht de Wee vum spezifesche Programm mam 'whereis' Kommando. e.g., wou ass Datum

 whereis date
date: /bin/date /usr/share/man/man1/date.1.gz

Dat ass genuch fir elo. Mir wäerten elo net vill iwwer dës Theorie schwätzen. Kommt op Scripten.

Beweegt aktuellen Aarbechtsverzeechnes

Beweegt vum aktuellen Aarbechtsverzeechnes op all Niveau erop andeems Dir just den numeresche Wäert um Enn vum Skript liwwert beim Ausféieren.

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

Späichert déi uewe genannte Coden als up.sh, op Ärem Desktop. Maacht et ausführbar (chmod 755 up.sh). Run:

./up.sh 2 (wäert den aktuellen Aarbechtsverzeichnis op zwee Niveau erop réckelen).
./up.sh 4 (wäert den aktuellen Aarbechtsverzeechnes op véier Niveau erop réckelen).

A gréissere Skripte déi den Dossier am Dossier bannen enthält ... mat Bibliothéiken, Binären, Ikonen, Ausführbaren, etc op enger anerer Plaz, Dir als Entwéckler kënnt dëst Skript ëmsetzen fir op déi gewënscht Plaz op eng ganz automatiséiert Manéier ze plënneren.

Notiz: Fir ass eng Loop am uewe genannte Skript an et wäert weider ausféieren bis d'Wäerter richteg sinn fir d'Loop.

 chmod 755 up
 ./up.sh 2
You are in: /

 ./up.sh 4 
You are in: / 

Erstellt eng zoufälleg Datei oder Dossier

Erstellt eng zoufälleg Datei (Dossier) ouni Chance fir Duplikatioun.

#! /bin/bash

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

Dëst ass en einfacht Skript awer et funktionnéiert ass net sou einfach.

  1. 'echo': Dréckt alles wat an den Zitater geschriwwen ass.
  2. ‘$‘: Ass eng Shell-Variabel.
  3. ‘>>‘ : Den Ausgang gëtt op den Ausgab vum Datumbefehl ëmgeleet, gefollegt vun der txt Extensioun.

Mir wëssen datt d'Ausgab vum Datum Kommando ass Datum, an Zäit an Stonn, Minutt, Sekonn zesumme mam Joer. Dofir kënne mir Output op engem organiséierte Dateinumm kréien ouni d'Chance fir Dateinumm Duplikatioun. Et kéint ganz nëtzlech sinn wann de Benotzer d'Datei brauch erstallt mat Zäitstempel fir zukünfteg Referenz.

 ./randomfile.sh  
Hello server 
Your File is being saved to /home/server/Desktop

Dir kënnt d'Datei kucken, déi um Desktop erstallt gëtt mat Haut Datum an aktuell Zäit.

 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

Eng méi detailléiert Implementatioun vum uewe genannte Skript gëtt hei ënnen uginn, deen um uewe genannte Prinzip funktionnéiert a ganz nëtzlech ass fir d'Netzwierkinformatioun vun engem Linux Server ze sammelen.

Skript fir Netzwierkinformatioun ze sammelen

Sammelt Netzwierkinformatioun op engem Linux Server. De Skript ass ze grouss an et ass net méiglech de ganze Code an d'Ausgab vum Skript hei ze posten. Also, et ass besser, Dir kënnt de Skript eroflueden andeems Dir ënnert dem Downloadlink benotzt an et selwer testen.

Notiz: Dir musst vläicht lsb-Core Package an aner erfuerderlech Packagen an Ofhängegkeet installéieren. Apt oder Yum déi erfuerderlech Packagen. Natierlech musst Dir root sinn fir de Skript auszeféieren, well déi meescht vun de Kommandoen, déi hei benotzt ginn, konfiguréiert sinn fir als Root ze lafen.

 ./collectnetworkinfo.sh  

The Network Configuration Info Written To network.20-07-13.info.txt. Please email this file to [email _provider.com. ktop

Dir kënnt déi uewe genannte E-Mailadress an Ärem Skript änneren fir datt se Iech gepost gëtt. Déi automatesch generéiert Datei ka gekuckt ginn.

Skript fir Konvertéiert UPPERCASE op kleng Buschtawen

E Skript, deen UPPERCASE op kleng Buschtawen konvertéiert an den Ausgang op eng Textdatei small.txt ëmgeleet, déi wéi néideg geännert ka ginn.

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

Dëst Skript uewendriwwer kann de Fall vun enger Datei vun all Längt mat engem eenzege Klick vun grousser Buschtawen op kleng Buschtawen konvertéieren a vice-versa wann néideg, mat wéineg Ännerung.

 ./convertlowercase.sh  
Enter File Name : a.txt 

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

Nei Datei (small.txt) Ausgang:

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

Einfach Rechner Programm

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

Also hutt Dir gesinn wéi einfach et war e mächtege Programm ze kreéieren wéi Berechnungen sou eng einfach Manéier. Et ass net d'Enn. Mir wäerte mat op d'mannst ee méi Artikel vun dëser Serie Compteur, déi breet Perspektiv aus Administratioun Vue deckt.

Dat ass alles fir elo. Als Lieser an de beschte Kritiker ze sinn, vergiesst net eis ze soen wéi vill a wat Dir an dësem Artikel genoss hutt a wat Dir wëllt am zukünftegen Artikel gesinn. All Fro ass ganz wëllkomm am Kommentar. Bleift bis dohin gesond, sécher an ofgestëmmt. Like an deelt eis an hëlleft eis ze verbreeden.