Gotovo bodo priložnosti, ko boste želeli, da uporabnik kaj vpiše. Tole je eden od možnih načinov:
#!/bin/bash
echo Vnesite svoje ime
read IME
echo "Zdravo, $IME!"
Z read lahko dobite tudi več vrednosti hkrati:
#!/bin/bash
echo Vnesite svoje ime in priimek
read IME PRIIMEK
echo "Zdravo, $PRIIMEK $IME!"
V ukazni vrstici poskusite tole:
echo 1 + 1
Če ste pričakovali, da boste dobili '2', boste nekoliko razočarani. Kaj storiti, če želite, da vam BASH pomaga izračunati nekaj računov? Rešitev je takšna:
echo $((1+1))
Ta ukaz bo dal bolj 'smiseln' izpis. Isto lahko dosežete tudi takole:
echo $[1+1]
V primeru, da vaši računi vsebujejo ulomke ali težjo matematiko, lahko za računanje uporabite program bc.
Če na primer v ukazni vrstici poženete "echo $[3/4]", boste dobili rezultat 0, ker bash pri izračunih uporablja le cela števila. Za pravilen rezultat bo treba pognati "echo 3/4|bc -l", kar bo vrnilo pravilen rezultat - 0,75.
Mike (glejte Zahvale) v sporočilu piše:
Primeri vedno uporabljajo #!/bin/bash .. morda bi lahko navedel navodilo kako najti bash, če ga ni na tem mestu.
Še najbolje je uporabiti 'locate bash', vendar vsi sistemi nimajo programa locate.
'find ./ -name bash' v korenskem imeniku je navadno prav tako učinkovit.
Mesta, ki jih preverite:
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
(več mest se trenutno ne morem domisliti... sicer pa sem bash po različnih sistemih našel v enem od navedenih mest.
Lahko poskusite tudi 'which bash'.
Bash shrani vrnjeno vrednost programa v posebno spremenljivko z imenom $?.
Sledeči primer prikazuje kako ugotoviti vrnjeno vrednost programa; predpostavljam, da imenik dada ne obstaja. (Tudi tole je predlagal mike.)
#!/bin/bash
cd /dada &> /dev/null
echo vv: $?
cd $(pwd) &> /dev/null
echo vv: $?
Ta kratek skript izpiše vse tabele iz vseh podatkovnih baz (če imate seveda nameščen MySQL). Popraviti morate ukaz mysql, da bo vseboval veljavno uporabniško ime ter geslo.
#!/bin/bash
DBS=`mysql -uroot -e"show databases"`
for b in $DBS ;
do
mysql -uroot -e"show tables from $b"
done
Več izvornih datotek lahko uporabite z ukazom source.
__TO-DO__