Shell scriptek

Különböző Linux shell scriptek

Egyszerű, közös indítószkript több programverzióhoz

Mivel az eddigiekben több program több verziójának telepítését mutattam be, ezeket nem tartottam volna jónak egyszerre automatikusan indítani a rendszer betöltésével. Így az ehhez szükséges lépéseket kihagytam. Mégis jó volna egy megoldás, amivel rövidebb utasítással és könnyebben lehetne elindítani az FPM-et, Apache HTTPD-t és MySQL-t. Bár így is kézzel kell indítani és leállítani őket, sokkal egyszerűbben. Ezt fogom most bemutatni.

Megosztás/Mentés

Páros sorok megfordítása fájlban bash scripttel

Minek irkálok ilyen scripteket? Ez speciel egyetemi szorgalmi feladat volt, s ha már megírtam ne vesszen el szegény.

A Script:

  1. if [ ! -f $1 ];
  2. then
  3.         echo "Első paraméter hiányzik, vagy nem létezik a fájl!"
  4.         exit 1
  5. fi
  6. if [ $# -lt 2 ];
  7. then
  8.         echo "Második paraméter hiányzik"
  9.         exit 1
  10. fi
  11.  
  12. num=`wc -l $1 | cut -d" " -f1`
  13. ret=();
  14. i=0;
  15. while  [ $num -gt 0 ];
  16. do
  17.         tmp=`tail -n ${num} $1 | head -n1`
  18.         b=$((num % 2))
  19.         if [ $b -eq 0 ];
  20.         then
  21.                 ret[$i]=`echo $tmp | rev`
  22.         else
  23.                 ret[$i]=`echo $tmp`
  24.         fi
  25.         let i++
  26.         num=$((num-1))
  27. done;
  28. num=$i
  29. while [ $i -gt 0 ];
  30. do
  31.         index=$((num-i))
  32.         if [ $index -gt 0 ];
  33.         then
  34.                 echo "${ret[$index]}" >> $2
  35.         else
  36.                 echo "${ret[$index]}" > $2
  37.         fi
  38.         let i--
  39. done;

Használata:
Mentsd el "rev.sh" néven, majd futtasd terminálban:

./rev.sh ./src.txt ./dst.txt

Ahol az src.txt a fájl, amiből olvas, és a dst.txt a fájl, amibe visszaírja az eredményt. Minden második sorát az src.txt -nek megfordítja és úgy írja be a dst.txt-be az src.txt tartalmát. A két fájl neve meg is egyezhet.

Megosztás/Mentés

Fájlok átnevezése kisbetűsre linuxon (rekurzív bash script)

Minden különleges idegen karaktert nem ismer, de a rename hívás után megadható a többi karakter mintájára új is.

  1. #!/bin/bash
  2.  
  3. if [ $# -lt 1 ];
  4. then
  5.         echo "Add meg a mappa útvonalát!";
  6.         exit 1
  7. fi
  8.  
  9.  
  10. function getftype()
  11. {
  12.         str=`ls -dl "$1"`
  13.         echo ${str:0:1}
  14. }
  15.  
  16. function tolowercase()
  17. {
  18.         cd "$1"
  19.         for i in *
  20.         do
  21.                 ftype=`getftype "$i"`
  22.                 if [ "$ftype" == "d" ];
  23.                 then
  24.                         tolowercase "`pwd`/$i"
  25.                 fi
  26.         done;
  27.         rename 'y/A-ZÁÉÍÓÖŐÚÜŰ/a-záéíóöőúüű/' *
  28.         cd ..
  29. }
  30.  
  31. cd "$1"
  32. tolowercase "`pwd`"

Használata:
Másold a fenti forráskódot egy tolcdc.sh ( to lowercase directory content ) nevű fájlba, majd futtasd terminálban a következőképpen.

./tolcdc.sh ./mappautvonala

Ahol a ./mappautvonala annak a mappának az útvonala, amiben rekurzívan szeretnéd átnevezni a a fájlokat, mappákat kisbetűsre.

Megosztás/Mentés