Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

shift – Accesso a molti argomenti

Ma cosa succede quando forniamo al programma un gran numero di argomenti come questo:


Immagine

[io@linuxbox~]$ parametro positivo *


Numero di argomenti: 82

$0 = /home/me/bin/posit-param

$1 = indirizzi.ldif

$2 = cestino

$3 = segnalibri.html

$4 = debian-500-i386-netinst.iso

$5 = debian-500-i386-netinst.jigdo

$6 = debian-500-i386-netinst.template

$7 = debian-cd_info.tar.gz


$8 = Desktop

$9 = dirlist-bin.txt

$8 = Desktop

$9 = dirlist-bin.txt


In questo sistema di esempio, il carattere jolly * si espande in 82 argomenti. Come possiamo elaborarne così tanti? La shell fornisce un metodo, seppur goffo, per farlo. spostamento il comando fa sì che tutti i parametri si "spostino verso il basso di uno" ogni volta che viene eseguito. Infatti, utilizzando spostamento, è possibile cavarsela con un solo parametro (oltre a $0, che non cambia mai):



#! / Bin / bash


# posit-param2: script per visualizzare tutti gli argomenti count=1

mentre [[ $# -gt 0 ]]; fai

echo "Argomento $count = $1" count=$((count + 1))

turno fatto

#! / Bin / bash


# posit-param2: script per visualizzare tutti gli argomenti count=1

mentre [[ $# -gt 0 ]]; fai

echo "Argomento $count = $1" count=$((count + 1))

turno fatto


Ogni volta spostamento viene eseguito, il valore di $2 viene spostato in $1, il valore di $3 viene spostato in $2 e così via. Il valore di $# viene anche ridotto di uno.

Nel posit-param2 programma, creiamo un ciclo che valuta il numero di argomenti rimanenti e continua finché ce n'è almeno uno. Visualizziamo l'argomento corrente, incrementiamo la variabile contare con ogni iterazione del ciclo per fornire un conteggio in esecuzione del numero di argomenti elaborati e, infine, eseguire un spostamento caricare

$1 con l'argomento successivo. Ecco il programma in funzione:


[io@linuxbox~]$ posit-param2 abcd

Argomento 1 = a Argomento 2 = b Argomento 3 = c Argomento 4 = d

[io@linuxbox~]$ posit-param2 abcd

Argomento 1 = a Argomento 2 = b Argomento 3 = c Argomento 4 = d


Il miglior sistema operativo cloud computing su OnWorks: