Ich habe ein Shell-Skript job.sh
. JetztRun Shell-Skript parallel in bash/linux
#!/bin/bash
table=$1
sqoop job --exec ${table}
wenn ich ./job.sh tabelle1
Das Skript tun erfolgreich ausgeführt:
Inhalte sind unten.
Ich habe die Tabellennamen in einer Datei tables.txt
.
Jetzt möchte ich über die tables.txt
Datei Schleife und führen Sie das job.sh
Skript 10 mal parallel.
Wie kann ich das tun?
Im Idealfall, wenn ich das Skript ausführen möchte ich es wie folgt tun;
./job.sh table1
./job.sh table2
./job.sh table3
./job.sh table4
./job.sh table5
./job.sh table6
./job.sh table7
./job.sh table8
./job.sh table9
./job.sh table10
Welche Optionen sind verfügbar?
@CharlesDuffy wahr! Das "-I" wird in diesem Fall nicht benötigt. Es könnte hilfreich sein, wenn 'printf% s \ n" {1..20} | xargs -I% -n1 -P10 echo sqoop job --exec tabelle% ' – jm666
Sicher, obwohl man' table {1..20} 'auch dort verwenden könnte, und die Haarigkeit vermeiden, die mit '-I' einhergeht. Zugegeben, das 255-Byte-String-Limit ist kein * unmittelbares * Problem, und die Tendenz, missbraucht zu werden, führt zu Injection-Attacken oder der POSIX-spezifizierten Begrenzung der Anzahl der Ersetzungen pro Kommandozeile (oder 5) ebenfalls, aber es ist etwas, das mir gerade als Geruch auffällt. –