Risposte:
Di recente è stata data una domanda simile : i simboli vengono valutati nella riga prima che il simbolo venga definito in questa riga, rendendo necessario dividere la definizione e l'uso dei simboli per separare le righe.
Spinto da un commento, avresti potuto fare questo:
foo=bar bash -c 'echo $foo'
che per primo assegna un valore fooe lo passa in un nuovo processo come variabile d'ambiente in cui può essere stampato.
Puoi leggere di più al riguardo nel riconoscimento dei token del linguaggio dei comandi della shell POSIX .
A seguito del commento di @mikeserv :
La shell deve leggere il suo input in termini di righe da un file, da un terminale nel caso di una shell interattiva o da una stringa nel caso di sh -c o system ().
Una volta delimitato, un token viene classificato come richiesto dalla grammatica in Shell Grammar.
@username...commentl'utente che specifichi riceverà un piccolo messaggio per far loro sapere che stavi parlando con loro. bene, lo faranno se è rilevante per il thread.
luit.ce penso di poter semplicemente cambiare setup_io(){ ... ;fnctl(0, [GS]ETFL, 0);...}per fare 2per il primo argomento. bene, immagino che anche le funzioni copyTermios()e setRawTermios()potrebbero aver bisogno di una piccola modifica, ma dovrebbe essere semplice, credo. il rc = (return)per ogni riga sembra strano - ma non sono neanche un programmatore C. è questa la tua cosa o è stata ereditata? e se il tuo commento sugli spazi vuoti si riferisce a "${set_null_var:=new val and $(echo other stuff)}"sei per lo più al sicuro con qualsiasi cosa. alcune conchiglie faranno cose strane con }.
env foo=bar bash -c 'echo $foo'