In veel situaties wil je de gebruiker wellicht vragen om wat invoer, en er zijn verscheidene manieren om dit te bereiken: Dit is één van die manieren:
#!/bin/bash
echo Vul alsjeblieft je naam in
read NAME
echo "Hi $NAME!"
Een variant daarop zal het volgende voorbeeld verduidelijken waarmee
je meerdere waarden met read kan verkrijgen.
#!/bin/bash
echo Vul alsjeblieft je voornaam en achternaam in
read FN LN
echo "Hi! $LN, $FN !"
Probeer het volgende achter de opdrachtregel (of in een shell):
echo 1 + 1
Als je verwachtte '2' te zien te krijgen, zal je wel teleurgesteld zijn. Wat als je wilt dat BASH van een aantal getallen de waarde bepaalt? Dit is de oplossing:
echo $((1+1))
Hiermee zal een 'logischer' uitvoer worden geproduceerd. Dit is voor het bepalen van de waarde van een rekenkundige expressie. Je kunt dit ook als volgt bereiken:
echo $[1+1]
Als je breuken of meer rekenkunde nodig hebt of dit gewoon wilt, kun je bc gebruiken om de waarde te bepalen van rekenkundige expressies.
als ik op de opdrachtregel "echo $[3/4]" opgaf, zou het 0 retourneren omdat bash alleen integers gebruikt bij beantwoording. Als je "echo 3/4|bc -l" opgaf, zou het op juiste wijze 0.75 retourneren.
UIt een bericht van mike (zie Met dank aan)
je gebruikt altijd #!/bin/bash .. je zou wellicht een voorbeeld
kunnen geven van waar bash is te vinden.
de voorkeur is 'locate bash', maar niet op alle computers is
locate geënstalleerd.
`find ./ -name bash' vanaf de rootdir zal gewoonlijk wel werken.
Aanbevolen te doorzoeken locaties:
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
(kan zo geen andere directory's bedenken... ik heb het voorheen
meestal wel op een ander systeem op één van deze
plaatsen kunnen vinden.
Je zou ook nog 'which bash' kunnen proberen.
Onder Bash, wordt de return waarde van een programma in een speciale variabele, genaamd $?, opgeslagen.
Hiermee wordt geïllustreerd hoe de return waarde van een programma kan worden afgevangen, waarbij ik ervan uit ga dat de directory dada niet voorkomt. (Ook dit was een suggestie van mike)
#!/bin/bash
cd /dada &> /dev/null
echo rv: $?
cd $(pwd) &> /dev/null
echo rv: $?
Dit kleine script laat alle tabellen van alle databases zien (ervan uitgaande dat je MySQL hebt geïnstalleerd). Overweeg tevens het wijzigen van de opdracht 'mysql' waarbij een geldige gebruikersnaam en wachtwoord wordt gebruikt.
#!/bin/bash
DBS=`mysql -uroot -e"show databases"`
for b in $DBS ;
do
mysql -uroot -e"show tables from $b"
done
Je kunt met de opdracht source meerdere bestanden gebruiken.
__TO-DO__