Plavba světem linuxového BASH skriptování - část III
Předchozí následující články ze série „Shell Scripting“ byly vysoce oceněny, a proto píšu tento článek, abych rozšířil nekonečný proces učení.
- Pochopte základní tipy pro skriptovací jazyk Linux Shell – část I
- 5 Shell skriptů pro nováčky v Linuxu, aby se naučili programování Shell – část II
Klíčová slova Bash
Klíčové slovo je slovo nebo symbol, který má pro počítačový jazyk zvláštní význam. Následující symboly a slova mají zvláštní význam pro Bash, pokud nejsou v uvozovkách a jsou prvním slovem příkazu.
! esac select }
case fi then [[
do for until ]]
done function while elif
if time else in {
Na rozdíl od většiny počítačových jazyků umožňuje Bash používat klíčová slova jako názvy proměnných, i když to může znesnadnit čtení skriptů. Aby byly skripty srozumitelné, neměla by se pro názvy proměnných používat klíčová slova.
Příkaz je v shellu implementován jako $(příkaz). Možná budete muset zahrnout celou cestu příkazu. např. $ (/bin/datum) pro správné provedení.
Cestu konkrétního programu můžete znát pomocí příkazu „whereis“. např. kde je datum
[root@tecmint /]# whereis date
date: /bin/date /usr/share/man/man1/date.1.gz
To zatím stačí. O těchto teoriích se teď moc bavit nebudeme. Přichází ke skriptům.
Přesunout aktuální pracovní adresář
Přejděte z aktuálního pracovního adresáře na libovolnou úroveň výše pouhým zadáním číselné hodnoty na konci skriptu při jeho provádění.
#! /bin/bash
LEVEL=$1
for ((i = 1; i <= LEVEL; i++))
do
CDIR=../$CDIR
done
cd $CDIR
echo "You are in: "$PWD
exec /bin/bash
Uložte si výše uvedené kódy jako „up.sh“ na plochu. Udělejte jej spustitelným (chmod 755 up.sh). Běh:
./up.sh 2 (přesune aktuální pracovní adresář o dvě úrovně výše).
./up.sh 4 (přesune aktuální pracovní adresář o čtyři úrovně výše).
Použití a oblast použití
Ve větších skriptech, které obsahují složku uvnitř složky… obsahující knihovny, binární soubory, ikony, spustitelné soubory atd. umístění, Vy jako vývojář můžete implementovat tento skript pro přesun na požadované místo velmi automatizovaným způsobem.
Poznámka: For je ve výše uvedeném skriptu smyčka a bude pokračovat, dokud nebudou hodnoty pro smyčku pravdivé.
Ukázkový výstup
[root@tecmint /]# chmod 755 up
[root@tecmint /]# ./up.sh 2
You are in: /
[root@tecmint /]# ./up.sh 4
You are in: /
[root@tecmint /]#
Stáhnout up.sh
Vytvořte náhodný soubor nebo složku
Vytvořte náhodný soubor (složku) bez možnosti duplikace.
#! /bin/bash
echo "Hello $USER";
echo "$(uptime)" >> "$(date)".txt
echo "Your File is being saved to $(pwd)"
Toto je jednoduchý skript, ale jeho fungování není tak jednoduché.
- „echo“ : Vytiskne vše, co je napsáno v uvozovkách.
- „$“ : Je proměnná prostředí.
- „>>“ : Výstup je přesměrován na výstup příkazu date následovaný příponou txt.
Víme, že výstup příkazu date je datum a čas v hodinách, minutách druhý spolu s rokem. Proto bychom mohli získat výstup na organizovaný název souboru bez možnosti duplikace názvu souboru. Může to být velmi užitečné, když uživatel potřebuje soubor vytvořený s časovým razítkem pro budoucí použití.
Ukázkový výstup
[root@tecmint /]# ./randomfile.sh
Hello server
Your File is being saved to /home/server/Desktop
Soubor, který je vytvořen na ploše, můžete zobrazit s dnešním datem a aktuálním časem.
[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
Níže je uvedena podrobnější implementace výše uvedeného skriptu, který funguje na výše uvedeném principu a je velmi užitečný při shromažďování informací o síti Linux serveru.
Stáhněte si randomfile.sh
Skript pro sběr síťových informací
Shromažďuje informace o síti na serveru Linux. Skript je příliš velký a není možné sem umístit celý kód a výstup skriptu. Takže je lepší si skript stáhnout pomocí níže uvedeného odkazu ke stažení a vyzkoušet si ho sami.
Poznámka: Možná budete muset nainstalovat balíček lsb-core a další požadované balíčky a závislosti. Apt nebo Yum požadované balíčky. Je zřejmé, že ke spuštění skriptu musíte být root, protože většina zde použitých příkazů je nakonfigurována tak, aby se spouštěly jako root.
Ukázkový výstup
[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
Výše uvedenou e-mailovou adresu můžete ve skriptu změnit, aby vám byla zaslána poštou. Automaticky generovaný soubor lze zobrazit.
Stáhněte si collectnetworkinfo.sh
Script to Převede VELKÁ PÍSMENA na malá
Skript, který převádí VELKÁ PÍSMENA na malá a přesměruje výstup do textového souboru „small.txt“, který lze podle potřeby upravit.
#!/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
Tento výše uvedený skript dokáže v případě potřeby převést velká a malá písmena v souboru libovolné délky jediným kliknutím z velkých na malá a naopak, pokud je to nutné, s malými úpravami.
Ukázkový výstup
[root@tecmint /]# ./convertlowercase.sh
Enter File Name : a.txt
Initial File:
A
B
C
D
E
F
G
H
I
J
K
...
Výstup nového souboru (small.txt):
a
b
c
d
e
f
g
h
i
j
k
...
Stáhněte si convertlowercase.sh
Jednoduchý program pro kalkulačku
#! /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
Ukázkový výstup
[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
Stáhněte si simplecalc.sh
Takže jste viděli, jak snadné bylo vytvořit výkonný program jako výpočty tak jednoduchým způsobem. Není to konec. Přinášíme alespoň jeden další článek této série, pokrývající širokou perspektivu z pohledu administrace.
To je prozatím vše. Jako čtenář a nejlepší kritik nám nezapomeňte sdělit, jak moc a co se vám v tomto článku líbilo a co byste chtěli vidět v dalším článku. Jakýkoli dotaz je velmi vítán v komentáři. Do té doby zůstaňte zdraví, bezpeční a vyladění. To se mi líbí a sdílejte a pomozte nám šířit.