Felhasználói eszközök

Eszközök a webhelyen


szerverek:linux:cli:bash-szkriptek

📜 Bash szkriptek

Ez egy egyszerűtől a bonyolultabbig bővülő bash szkript gyűjtemény, ihletadónak.

ℹ️ Vegyes kiírások

Dátum kiírás

#!/bin/bash
clear 		# törli a képernyőt
date
date +%Y	# csak az év
date +%Y-%m-%d0	# formázott dátum

Felhasználó üdvözlése

#!/bin/bash
clear
echo "Üdvözöllek, $USER!"  # A $USER redszerváltozó tartalmazza a jelenlegi user nevét

Uptime

Mióta megy a gép? Kétféle módon is lehet kombinálni az echo-val, hogy egy sorba kerüljön a kiírás és az uptime parancs kimenete.

#!/bin/bash
clear
 
# egyik kiírás: a két parancs külön sorban van:
echo -n "Üzemidő: "	# -n = nincs sortörés, mellé jön a következő kimenet
uptime -p		# -p = pretty kapcsoló, egyszerűsített kiírás
 
# másik kiírás: az uptime parancsot az echo-n belül is lehet futtatni $(PARANCS)
echo "A rendszer üzemállapota: $(uptime)" 

➕ Fájlok létrehozása

Új fájl létrehozása paraméterrel

Futtatáskor paraméterként adjuk meg a fájl nevét.

#!/bin/bash
clear
touch $1
ls		# kilistázzuk a könyvtárat

Új fájl dátummal

A mai dátum lesz a fájl neve.

#!/bin/bash
clear
touch `date +%Y-%m-%d`.dat #fontos a ` karakter!
ls	

vagy változó használatával:

#!/bin/bash
clear
datum = `date +%Y-%m-%d`
touch $datum.dat
ls

Új fájl létrehozása interakcióval

Futtatás közben kérjük be a fájl nevét.

#!/bin/bash
clear
echo “add meg a fájl nevét:”
read fajlnev
touch $fajlnev
ls -l $fajlnev			# csak az új fájlt listázza ki

Új fájl létrehozása tartalommal (szkript készítő szkript)

#!/bin/bash
clear
read -p "Add meg az új szkript nevét: " fajlnev
echo "#!/bin/bash" > $fajlnev		# a > töröl minden korábbi tartalmat
echo "clear" >> $fajlnev		# a >> hozzáfűzi az előző tartalomhoz
chmod +x $fajlnev			# futtathatóvá teszi az új szkriptet
nano $fajlnev				# megnyitja szerkesztőben (a szkriptünk fut tovább!)
 
# a NANO bezárása után megy tovább a szkript!
 
clear
echo “ A szkript futtatásához írd be: ./$fajlnev

Projektmappa készítése

Létrehozunk egy projekt mappát, azon belül három almappát és egy readme fájlt.

#!/bin/bash
mkdir -p "$1/src" "$1/docs" "$1/tests"
echo**Üdvözöl a $1 projekt!**> "$1/README.md"
echo "Project $1 létrehozva."

↔️ Feltételek használata (if-else)

Minta if-else:

# Ez egy minta
 
if [ feltétel ]; then		# a feltétel és a zárójelek közé szóközt kell tenni!
	echo "Igaz a feltétel."
else
	echo "Hamis a feltétel."
fi		# fi-vel zárod a logikai vizsgálatot!

Root-e vagy?

Kiírja, hogy root-ként futtatod-e a szkriptet.

Gyakorlati haszna, ha egy nagyobb szkript részeként használod, amit root-ként, vagy éppen nem root-ként kellene futtatni.

#!/bin/bash
if [ "$EUID" -eq 0 ]; then		# EUID = 0 -> root
    echo "Root jogokkal rendelkezel."
else
    echo "Nincs root jogosultságod! Futtasd a szkriptet sudo-val."
fi

Netkapcsolat ellenőrzése

#!/bin/bash
clear
ping -c 1 google.com > /dev/null 2>&1
if [ $? -eq 0 ]; then
  echo "Van internet kapcsolat"
else
  echo "Nincs internet kapcsolat"
fi

Egysoros változat:

#!/bin/bash
clear
ping -c 1 google.com > /dev/null 2>&1 && echo "Van internet kapcsolat" || echo "Nincs internet kapcsolat"

Fájlok megszámlálása

Egy mappában levő fájlokat számlálja meg rekurzívan.

#!/bin/bash
clear
 
# KÖNYVTÁR VÁLASZTÁSA
if [ -z "$1" ]; then
    SEARCH_DIR="."	# ha a $1 üres, akkor a jelenlegi mappát listázza
else
    SEARCH_DIR="$1"	# ha adtunk meg paramétert a szkript neve után ($1), akkor az lesz a könyvtár, amiben számol
fi
 
# A FÁJLOK MEGSZÁMOLÁSA
echo "A(z) ‘$KONYVTAR’ könyvtárban összesen: $(find "$KONYVTAR" -type f | wc -l) fájl található."

😎 Összetettebb szkriptek

szerverek/linux/cli/bash-szkriptek.txt · Utolsó módosítás: szerkesztette: fm