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.
- Basis Linux Shell Skriptsprooch Tipps verstoen - Deel I
- 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.
- 'echo': Dréckt alles wat an den Zitater geschriwwen ass.
- ‘$‘: Ass eng Shell-Variabel.
- ‘>>‘ : 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.