Sok esetben szükség lehet arra, hogy adatokat kérjünk be a felhasználótól. Erre számos lehetőségünk van, melyek közül egy a következő:
#!/bin/bash
echo Kérlek add meg a neved
read NAME
echo "Hi $NAME!"
A read segítségével egyszerre több adatot is be tudsz olvasni. A következő példa ezt tisztázza.
#!/bin/bash
echo Kérlek add meg a vezeték- és keresztneved
read FN LN
echo "Hi! $LN, $FN !"
A parancssorba (vagy a shell-be) írd be a következőt:
echo 1 + 1
Ha "2"-t vártál eredményül bizonyára csalódott vagy. De mi van akkor, ha azt szeretnéd, hogy a bash ki is értékelje a számokat? A megoldás a következő:
echo $((1+1))
Ez már sokkal logikusabb kimenetet ad. Így kell egy aritmetikai kifejezést kiértékelni. Ugyanezt az eredményt kapod a következővel:
echo $[1+1]
Ha törtekre vagy más matematikai jellegű dolgokra van szükséged, vagy egyszerűen csak ezt szeretnéd használni, akkor bc-vel is kiértékelheted az aritmetikai kifejezéseket.
Ha beírom a parancssorba, hogy "echo $[3/4]", akkor 0-t kapok, mivel a bash csak egészekkel dolgozik. Az "echo 3/4|bc -l" parancsra viszont már helyes eredményt ad, azaz 0.75-öt.
Mike levele nyomán (nézd meg a köszönetnyilvánítást):
Eddig mindig a "#!/bin/bash" formát használtuk, most itt van pár példa arra, hogyan tudhatod meg a bash konkrét elérési útját.
A "locate bash" az egyik legjobb módszer erre a feladatra, de nem minden rendszeren van locate.
A gyökérből kiadott "find ./ -name bash" legtöbbször működik.
A lehetséges helyek, ahol nézelődhetsz:
ls -l /bin/bash
ls -l /sbin/bash
ls -l /usr/local/bin/bash
ls -l /usr/bin/bash
ls -l /usr/sbin/bash
ls -l /usr/local/sbin/bash
(Most kapásból nem jut több eszembe... A legtöbb rendszeren
ezen könyvtárak valamelyikében lesz).
Vagy megpróbálhatod a "which bash" parancsot is.
Bash-ban a programok visszatérési értéke egy speciális változóban tárolódik, melynek neve $?.
A következő példa bemutatja, hogyan deríthetjük ki egy program visszatérési értékét. Feltételezem, hogy a dada nevű könyvtár nem létezik. (Ez szintén Mike javaslatára került ide.)
#!/bin/bash
cd /dada &> /dev/null
echo rv: $?
cd $(pwd) &> /dev/null
echo rv: $?
A következő szkript listázza az összes táblát az összes adatbázisból (felteszem, hogy MySQL-t használsz). Megváltoztathatod a "mysql" parancsot úgy, hogy valódi felhasználónevet és jelszót használsz.
#!/bin/bash
DBS=`mysql -uroot -e"show databases"`
for b in $DBS ;
do
mysql -uroot -e"show tables from $b"
done
A "source" parancs segítségével több fájlt is használhatsz egyszerre.
__TO-DO__