Sebelumnya saya menggunakan source
perintah seperti ini:
source file_name
Tapi yang saya coba lakukan adalah ini:
echo something | source
Yang tidak berhasil.
Karena source
(atau .
) mengambil file sebagai argumen, Anda dapat mencoba:
source <(echo something)
Perintah sumber Anda memerlukan argumen file. Anda bisa mendapatkannya di beberapa shell dengan substitusi proses, dan ini karena dengan cara yang sama shell menggantikan ...
...
echo
bit di sana pada command-line dengan output subshell, dalam kasus substitusi itu menggantikan subshell dengan file bernama - biasanya/dev/fd/62
atau sesuatu - beberapa tautan ke deskriptor file. Dengan pipa deskriptor file adalah 0 jadi ......
/dev/stdin
atau apa pun masalahnya harus bekerja dengan baik pada sistem linux - dan banyak lainnya. Anda juga dapat menggunakan di sini-dokumen serupa:Anda dapat memverifikasi cara shell Anda menangani substitusi proses, dengan cara:
... yang cetakan (dalam
bash
) :... dan kita dapat melihat bahwa shell sedang melakukan substitusi dan
readlink
sedang membaca dari sebuah pipa anoymous yang dibuka pada file-descriptor 63.sumber