Saya sedang menulis skrip dan saya ingin meneruskan hasil dari bc
menjadi variabel. Saya telah mendeklarasikan 2 variabel ( var1
dan var2
) dan telah memberi mereka nilai. Dalam skrip saya, saya ingin meneruskan hasil dari bc
ke variabel lain katakan var3
sehingga saya bisa bekerja dengan var3
perhitungan lain. Sejauh ini saya sudah bisa menulis hasilnya ke file yang bukan yang saya cari dan juga saya sudah bisa mengulang hasilnya di terminal tetapi saya hanya ingin meneruskan hasilnya ke variabel saat ini sehingga Saya dapat bekerja dengan variabel itu.
echo "scale=2;$var1/var2" | bc
sumber
|
, perintah di sebelah kanan pipa dieksekusi dalam subkulit, dan dibutuhkan sumber daya untuk membuka subkulit baru (seperti membuka contoh baru bash untuk menjalankan perintah itu). Jika Anda bisa menghindarinya, hindarilah. Di sini, mengirimkan sebuahecho
kebc
akan menjalankan perintahbc
dalam sebuah subkulit dan, dalam beberapa hal, terbelakang (jangan tersinggung), karena bash memiliki konstruk string yang indah<<<
untuk menghindari hal-hal bodoh seperti ini./bin/sh
(tanda hubung) daripada bash, tetapi tanda hubung tidak memiliki<<<
.time for i in {1..10000}; do : <<< ""; done
dengantime for i in {1..10000}; do echo "" | : ; done
, Anda akan melihat perbedaan dramatis. Maka Anda benar, heredoc sedikit lebih cepat dari herestring. Tetapi lebih canggung untuk mengetik sebagai satu-liner.Substitusi perintah menyimpan output dari suatu perintah ke dalam variabel.
sumber