Vyhledávání na webu

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í.

  1. Pochopte základní tipy pro skriptovací jazyk Linux Shell – část I
  2. 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é.

  1. echo“ : Vytiskne vše, co je napsáno v uvozovkách.
  2. $“ : Je proměnná prostředí.
  3. >>“ : 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.