come impostare cmd line arg in run attraverso un pipe line-per-line su bash


1

dire che l'unico modo per eseguire uno script bash è come "cat script.sh | bash" (nella situazione reale è un binario che scrive la sua linea di output per riga su una pipe anonima con un'istanza bash collegata alla sua fine di lettura) C'è un modo per passare gli argomenti cmdline (ovvero farlo funzionare come se fosse eseguito come "bash script.sh ab c" in modo che $ @ non sia vuoto)?

grazie in anticipo per qualsiasi puntatore GK


Sei in grado di usare echo "script.sh" | bash? Quindi includeresti semplicemente i parametri nella stringa. Ad esempio, echo "ls -l" | bashfunziona per me, producendo ls -loutput. Quello che hai dato invierà ciascuna riga script.shseparatamente a bash.
Joe P

sì Joe, questa è l'idea: avere un programma che produca gradualmente uno script bash completamente sintatticamente corretto e alimentalo per bash riga per riga man mano che viene generata ogni riga. Il problema è che lo script in memoria generato fa (e deve) riferirsi a cmdline args
giKarr,

Risposte:


1

ok, dopo alcuni tentativi esotici invano con BASH_ARGC / ARGV passati nell'array env di execve, ho trovato la soluzione semplice: cat script.sh | bash -sabc

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.