Weboldal keresés

10 hasznos tipp hatékony Bash szkriptek írásához Linux alatt


A shell script a legegyszerűbb programozási forma, amelyet Linux alatt megtanulhat/csinálhat. Sőt, a feladatok automatizálásához szükséges rendszeradminisztrációhoz, új egyszerű segédprogramok/eszközök fejlesztéséhez, hogy csak néhányat említsünk.

Ebben a cikkben 10 hasznos és praktikus tippet osztunk meg a hatékony és megbízható bash szkriptek írásához, amelyek a következőket tartalmazzák:

1. Mindig használjon megjegyzéseket a szkriptekben

Ez egy ajánlott gyakorlat, amely nem csak a shell szkriptekre vonatkozik, hanem minden más típusú programozásra is. A megjegyzések írása egy szkriptbe segít Önnek vagy valakinek, aki átmegy a szkripten, hogy megértse, mit csinálnak a szkript különböző részei.

Kezdetben a megjegyzéseket a # jellel határozzuk meg.

#TecMint is the best site for all kind of Linux articles

2. Ha nem sikerül kilép a szkriptből

Előfordulhat, hogy a bash akkor is folytatja a parancsfájl végrehajtását, ha egy bizonyos parancs meghiúsul, így hatással van a szkript többi részére is (ez végül logikai hibákhoz vezethet). Használja az alábbi sort a szkriptből való kilépéshez, ha egy parancs meghiúsul:

#let script exit if a command fails
set -o errexit 
OR
set -e

3. Készítsen kilépést a szkriptből, ha a Bash nem deklarált változót használ

A Bash megpróbálhat nem deklarált szkriptet is használni, ami logikai hibát okozhat. Ezért használja a következő sort, hogy utasítsa a bash-t, hogy lépjen ki egy szkriptből, amikor nem deklarált változót próbál használni:

#let script exit if an unsed variable is used
set -o nounset
OR
set -u

4. Használjon dupla idézőjeleket a változókra való hivatkozáshoz

A dupla idézőjelek használata hivatkozáskor (változó értékének használata) segít megelőzni a szóhasadást (a szóközök tekintetében) és a szükségtelen gömbölyűket (a helyettesítő karakterek felismerése és kiterjesztése).

Nézze meg az alábbi példát:

#!/bin/bash
#let script exit if a command fails
set -o errexit 

#let script exit if an unsed variable is used
set -o nounset

echo "Names without double quotes" 
echo
names="Tecmint FOSSMint Linusay"
for name in $names; do
        echo "$name"
done
echo

echo "Names with double quotes" 
echo
for name in "$names"; do
        echo "$name"
done

exit 0

Mentse el a fájlt, lépjen ki, majd futtassa az alábbiak szerint:

./names.sh

5. Használja a Scripts funkcióit

A nagyon kicsi (néhány soros kóddal rendelkező) szkriptek kivételével mindig ne felejtsen el olyan funkciókat használni, amelyek modularizálják a kódot, és a szkripteket olvashatóbbá és újrafelhasználhatóbbá teszik.

Az írási függvények szintaxisa a következő:

function check_root(){
	command1; 
	command2;
}

OR
check_root(){
	command1; 
	command2;
}

Egysoros kód esetén használjon befejező karaktereket minden parancs után, például:

check_root(){ command1; command2; }

6. A karakterlánc-összehasonlításokhoz használja az=értéket az == helyett

Vegye figyelembe, hogy a == a = szinonimája, ezért csak egyetlen =-t használjon a karakterláncok összehasonlításához, például:

value1=”linux-console.net”
value2=”fossmint.com”
if [ "$value1" = "$value2" ]

7. Használja a $ (parancsot) a régi „parancs” helyett a helyettesítéshez

A parancshelyettesítés a parancsot a kimenetével helyettesíti. Használja a $ (command) parancsot a `command` idézőjelek helyett a parancsok helyettesítésére.

Ezt még a shellcheck eszköz is ajánlja (figyelmeztetéseket és javaslatokat jelenít meg a shell szkriptekhez). Például:

user=`echo “$UID”`
user=$(echo “$UID”)

8. A statikus változók deklarálásához használjon írásvédett módot

A statikus változó nem változik; értéke nem változtatható meg, ha már definiált egy szkriptben:

readonly passwd_file=”/etc/passwd”
readonly group_file=”/etc/group”

9. Használjon nagybetűs neveket a KÖRNYEZETI változókhoz és kisbetűket az egyéni változókhoz

Az összes bash környezeti változó neve nagybetűkkel történik, ezért használjon kisbetűket az egyéni változók elnevezéséhez, hogy elkerülje a változónév-ütközést:

#define custom variables using lowercase and use uppercase for env variables
nikto_file=”$HOME/Downloads/nikto-master/program/nikto.pl”
perl “$nikto_file” -h  “$1”

10. Mindig végezzen hibakeresést a hosszú szkripteknél

Ha több ezer sornyi kódot tartalmazó bash szkripteket ír, a hibák keresése rémálommá válhat. A szkript végrehajtása előtti egyszerű javításhoz végezzen hibakeresést. Sajátítsa el ezt a tippet az alábbi útmutatók elolvasásával:

  1. A Shell Script hibakeresési mód engedélyezése Linuxban
  2. A szintaktikai ellenőrzés végrehajtása a hibakeresési módban a Shell Scriptekben
  3. Hogyan lehet nyomon követni a parancsok végrehajtását a Shell Scriptben a Shell Tracing segítségével

Ez minden! Van más legjobb bash szkriptelési gyakorlata, amelyet megoszthat? Ha igen, akkor ehhez használja az alábbi megjegyzés űrlapot.