2016-09-24 3 views
0

ich versuche ein Skript zu schreiben. es fragt mich, wie viele "alles" du willst? und ich antwortete mit einer Zahl wie 10Bash-Skript. run command mit gezählten Zahlen und Namen

#!/bin/bash 
echo -n "Please enter some input: " 
read input 

jetzt führe ich wie ein Befehl 10mal Zahlen umfassen 001-010 zum Beispiel bekomme ich die richtigen Zahlen mit:

seq -f "%03g" 1 $input 

aber wie kann ich ausführen jetzt Befehle mit dieser Nummer wie:

command anyname-001 -some -parameter 
command anyname-002 -some -parameter 
command anyname-003 -some -parameter 

....

Danke für die Hilfe

+0

einen Blick Bitte an: [Was soll ich tun, wenn jemand meine Frage beantwortet ?] (http://stackoverflow.com/help/someone-answers) – Cyrus

Antwort

1

Mit GNU bash:

for ((i=1;i<=$input;i++)); do 
    printf -v number "%03d" "$i" 
    echo command anyname-${number} -some -parameter 
done 

Wenn alles in Ordnung aussieht, entfernen echo.

+0

Als du !! läuft gut !! – nbx

1

Verwenden Sie einfach eine for-Schleife über den Bereich. Das sollte den Trick machen.

#!/bin/bash 
echo -n "Please enter some input: " 
read input 

for number in `seq -f "%03g" 1 $input` 
do 
    command anyname-${number} -some -parameter 
done 
+0

Als du !! läuft gut !! – nbx

1

Eine Linie (na ja, formal zwei):

#!/bin/bash 
printf 'command anyname-%03d -some -parameter\n' $(seq $1) 

Rufen Sie das Skript als:

$ script 10 
command anyname-001 -some -parameter 
command anyname-002 -some -parameter 
command anyname-003 -some -parameter 
command anyname-004 -some -parameter 
command anyname-005 -some -parameter 
command anyname-006 -some -parameter 
command anyname-007 -some -parameter 
command anyname-008 -some -parameter 
command anyname-009 -some -parameter 
command anyname-010 -some -parameter