In molte occasioni potresti voler richiedere l'utente un certo input, Ci sono diversi modi per raggiungere tale scopo. Eccone uno:
#!/bin/bash
echo Please, enter your name
read NAME
echo "Hi $NAME!"
Come variante, puoi ottenere valori multipli con read, questo esempio dovrebbe chiarire il concetto.
#!/bin/bash
echo Please, enter your firstname and lastname
read FN LN
echo "Hi! $LN, $FN !"
Dalla riga di comando (o da una shell) prova questo:
echo 1 + 1
Se ti aspettavi di vedere '2' sarai dispiaciuto. Che fare se vuoi che BASH processi dei numeri che hai? Ecco la soluzione:
echo $((1+1))
Questo produrrà un output più 'logico'. Questo per valutare espressione aritmetica. Puoi ottenere lo stesso risultato con qualcosa come:
echo $[1+1]
Se hai bisogno di usare le frazioni, o operazioni più complesse ("more math", ndt), o semplicemente perché ne hai voglia, puoi utilizzare bc per processare le espressioni aritmetiche.
Se eseguissi "echo $[3/4]" al prompt dei comandi, mi restituirebbe 0 poiché bash usa solamente interi in fase di risposta. Eseguendo "echo 3/4|bc -l", ti restituirebbe un più adeguato 0.75.
Da un messaggio di mike (vedi Grazie a)
tu usi sempre #!/bin/bash .. potresti fornire un esempio di come
scoprire dove si trovi bash.
`locate bash' è preferibile, ma non tutte le macchine hanno locate.
`find ./ -name bash' dalla root directory (quella indicata con /,
ndt) funziona, in genere.
Suggerimenti su dove cercare:
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
(non me vengono in mente altri al momento. (l'ho trovata nella
maggior parte di questi posti in sistemi diversi).
Puoi provare anche 'which bash'.
Nella bash, il valore di ritorno di un programma è memorizzato in variabile speciale chiamata $?.
Questo mostra come catturare il valore restituito da un programma; faccio conto che la directory dada non esista. (Anche questo è stato suggerito da mike)
#!/bin/bash
cd /dada &> /dev/null
echo rv: $?
cd $(pwd) &> /dev/null
echo rv: $?
Questo piccolo script mostra tutte le tabelle da tutti i database (assumendo che tu abbia MySQL installato). Inoltre, considera la possibilità di modificare il comando 'mysql' per aggiungere uno username ed una password validi.
#!/bin/bash
DBS=`mysql -uroot -e"show databases"`
for b in $DBS ;
do
mysql -uroot -e"show tables from $b"
done
Puoi usare più di un file per volte tramite il comando source.
__TO-DO__