Solusi 1:
Anda dapat menggunakan xargs
, dengan -t
bendera xargs
akan bertele-tele dan mencetak perintah yang dijalankannya:
./command1 | xargs -t -n1 command2
-n1
mendefinisikan argumen maksimum yang diteruskan ke setiap panggilan command2
. Ini akan mengeksekusi:
command2 word1
command2 word2
command2 word3
Jika Anda menginginkan semua sebagai argumen dari satu panggilan command2
gunakan itu:
./command1 | xargs -t command2
Itu memanggil perintah2 dengan 3 argumen:
command2 word1 word2 word3
Solusi 2:
Anda ingin 'substitusi perintah', yaitu:sematkan output dari satu perintah di tempat lain
command2 $(command1)
Secara tradisional ini juga dapat dilakukan sebagai:
command2 `command1`
tetapi penggunaan ini biasanya tidak disarankan, karena Anda tidak dapat membuat sarangnya.
Misalnya:
test.sh:
#!/bin/bash
echo a b c
test2.sh
#!/bin/bash
echo $2
GUNAKAN:
./test2.sh $(./test.sh)
b
Harapkan pengiriman kesalahan skrip:Spawn id exp4 tidak terbuka saat dijalankan
Cara membersihkan cache penyelesai DNS di Linux (dan FreeBSD)