Jawaban:
Pertanyaan serupa dijawab baru-baru ini : simbol dievaluasi dalam baris sebelum simbol didefinisikan dalam baris ini, sehingga perlu untuk membagi definisi dan penggunaan simbol untuk memisahkan garis.
Diminta oleh komentar, Anda bisa melakukan ini:
foo=bar bash -c 'echo $foo'
yang pertama kali menetapkan nilai ke foo
dan meneruskannya ke proses baru sebagai variabel lingkungan di mana ia dapat dicetak.
Anda dapat membaca lebih lanjut tentang hal itu di POSIX Shell Command Language Token recognition .
Tindak lanjut dari komentar @mikeserv :
Shell harus membaca inputnya dalam bentuk baris dari file, dari terminal dalam kasus shell interaktif, atau dari string dalam kasus sh -c atau sistem ().
Setelah token dibatasi, itu dikategorikan sebagai diperlukan oleh tata bahasa di Shell Grammar.
@username...comment
pengguna yang Anda tentukan akan mendapat sedikit pesan yang memberi tahu mereka bahwa Anda sedang berbicara dengan mereka. baik, mereka akan jika utasnya relevan.
luit.c
dan saya pikir saya bisa mengubah setup_io(){ ... ;fnctl(0, [GS]ETFL, 0);...}
untuk melakukan 2
argumen pertama. baik, saya kira copyTermios()
dan setRawTermios()
fungsinya mungkin perlu sedikit modifikasi juga, tetapi harus sederhana, saya pikir. yang rc = (return)
untuk setiap baris tampak aneh - tapi aku tidak ada C programmer baik. Apakah itu milik Anda atau apakah itu warisan? dan jika komentar kosong Anda mengacu pada "${set_null_var:=new val and $(echo other stuff)}"
Anda sebagian besar aman tanpa apa-apa. beberapa kerang akan melakukan hal-hal aneh }
.
env foo=bar bash -c 'echo $foo'