bash: Aufruf eines Skripts mit double-quote-argument

Habe ich ein bash-Skripte, die ein argument, die in doppelten Anführungszeichen, die erstellt ein shape-file der Karte innerhalb der vorgegebenen Grenze zwischen, z.B.

$ export_map "0 0 100 100"

Im Skript gibt es zwei select Aussagen:

select ENCODING in UTF8 WIN1252 WIN1255 ISO-8859-8;
...
select NAV_SELECT in Included Excluded;

Natürlich, diese beiden Aussagen erfordern die Eingabe geben Sie eine Zahl als Eingabe. Dies kann umgangen werden, indem Rohrleitungen, die zahlen, gefolgt von einem Zeilenumbruch, an das Skript.

Um Zeit zu sparen, würde ich gerne ein Skript erstellen würden 8 Karten - für jede Kombination von ENCODING (4 Optionen) und NAV_SELECT (2 Optionen).

Ich geschrieben habe, ein weiteres bash-Skript, create_map auf server als wrapper:

#!/bin/bash

for nav in 1 2 3 4;
do
    for enc in 1 2;
    do
        printf "$nav\n$enc\n" | /bin/bash -c "./export_map.sh \"0 0 100 100\"" 
    done
done

**Das funktioniert (danke, Brian!), aber ich kann nicht einen Weg finden, um das numerische argument "0 0 100 100" weitergegeben werden, die von außerhalb der äußeren Schrift. **

Im Grunde bin ich auf der Suche nach Weg, um zu akzeptieren ein argument in Anführungszeichen zu ein wrapper bash-script und pass es mit der Anführungszeichen - zu einem inneren Drehbuch.

KLARSTELLUNGEN:

export_map ist das main-Skript aufgerufen wird, von create_map 8 mal.

Irgendwelche Ideen?

Dank,

Adam

  • Ich bin ein wenig unklar, was Sie hier zu tun versuchen. Sie sagen, Sie versuchen, etwas zu tun mit select Aussagen, aber es gibt keine select-Anweisungen in der bash-Skript. Sie drucken aus zwei zahlen, die auf verschiedenen Linien, und Rohrleitungen, die in einem Aufruf des export_map.sh Skript, die Sie nicht geben Sie den code für den (ist es der gleiche wie der create_map Sie erwähnen früher?). Ich bin ein bisschen unklar, wo Ihre Angabe der Probleme kommen auch. Können Sie versuchen, auszuführen, was genau Sie zu tun versuchen, und das genaue problem, das Sie haben?
  • Ich habe geklärt, meine Antwort - thanks a bunch.
InformationsquelleAutor Adam Matan | 2010-01-03
Schreibe einen Kommentar