2014-04-23 10 views
5

Ich habe eine Reihe von Dateinamen, die ich als Befehlszeilenargumente einfügen muss, während mein Bash-Skript läuft. Gibt es eine Möglichkeit, Befehlszeilenargumente mit einer separaten Datei (wie "test.txt") zu geben?Wie erhalten Sie Kommandozeilenargumente mit einer Textdatei?

Lassen Sie uns diese übernehmen sind die Dateien: fileA, fileB, FileC, FileC, FileD, und lassen Sie uns die Bash-Skript testBash.sh

+1

Argumente sind in Test.txt-Datei? –

+0

können Sie die 'testBash' Datei ändern? –

+0

Hallo Rahul, Ja Argumente sind in einer test.txt Datei –

Antwort

3

ja leicht xargs verwenden. nehmen file Inhalt ist

A 
B 

und die Bash-Skript-Datei s Inhalt ist

echo $1 
echo $2 
echo [email protected] 

dann:

cat file | xargs ./s 

A 
B 
A B 
+0

Hallo, Thankاهر Vielen Dank für Ihre Hilfe ... :) Sie haben klar darüber gesprochen, wie man das macht ... :) –

+2

Man sollte sich daran erinnern, dass Xargs eine Argumentliste auf mehrere Aufrufe desselben Befehls an einer beliebigen Stelle aufteilen können. Es ist also nicht für lange Listen geeignet. (In der Praxis wird dies in der Nähe von ARG_MAX gemacht, aber dies ist nicht garantiert.) – Netch

3

ist nehmen Wenn ich die Frage richtig verstanden habe, und test.txt enthält eine Liste von Dateinamen, die Sie wollen passieren zu testBash.sh, sollten Sie in der Lage sein, so etwas zu tun:

cat test.txt | testBash.sh 
+0

Vielen Dank Mureinik, es hat funktioniert ... :) –

Verwandte Themen