|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Sep 2006
Messaggi: 13
|
Script bash - passare un argomento allo script
Ciao a tutti, quello che vi presento è un problema banale, ma googolando non ho trovato una risposta facile.
Codice:
#!/bin/bash
i=1
while [ $i -le x ]
do
echo "hello world"
let i++
done
Codice:
>sh ./hello.sh 5 Codice:
hello world hello world hello world hello world hello world Esiste se no qualcosa del tipo input? Il fatto è che devo farlo con bash, nn con c o perl... grazie mille!! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
con $1 ti riferisci al primo parametro, $2 al secondo...
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 1944
|
Ricordati di mettere le "" intorno ai parametri nelle istruzioni di test, altrimenti se sono vuoti si incavola.
Ad esempio: if [ $i le $1 ]; then andrebbe trasformata in if [ "$i" le "$1" ]; then questo, in linea generale vale sempre: meglio mettere le virgolette "" intorno a qualunque variabile/parametro, per fare escape di spazi, caratteri speciali e tante altre cose.
__________________
"Oggi è una di quelle giornate in cui il sole sorge veramente per umiliarti" Chuck Palahniuk Io c'ero |
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Sep 2006
Messaggi: 13
|
grazie mille!!
In verità proprio pochi minuti fa ero arrivato alla seguente soluzione soluzione: (aggiungendo le virgolette come consigliato da Scoperchiatore) Codice:
#! /bin/bash if [ "$#" = "0" ] then echo none arguments else a="$@" i=1 while [ "$i" -le "$a" ] do echo "hello world" let i++ done fi Magari potrei aggiungere il controllo di cui sopra e fare (ma sono dettagli) Codice:
#! /bin/bash
if [ "$#" = "0" ]
then
echo none arguments
else
i=1
while [ "$i" -le "$1" ]
do
echo "hello world"
let i++
done
fi
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:12.



















