Neden `echo bash | bash` hemen bir çıkışın?
Oct 05 2020
Aşağıdaki işlemlerin tümü etkisiz işlemlerdir:
echo bash | bash
echo dash | dash
echo "bash -c bash" | bash
echo "dash -c dash" | dash
Neden? İlk satırda için, örneğin, ben bir bash örneği yaratacak varsayılabilir ve sonra o giriş için bekleyen başka bir bash örneği yaratacak. Ancak girdi için beklemez; çıkar. Üst bash da çıkar. Yani her iki bash örneği de çıkıyor ve bu komutları başlattığım kabuk örneğine döndüm. Nerede yanlış anlıyorum?
Yanıtlar
7 user414777 Oct 05 2020 at 12:45
İkinci bash örneği , kendi stdininde ( bashdizginin okunduğu borunun aynısıdır) girdi için bekler , ancak yalnızca echoişlemden çıkar çıkmaz ve borunun yazma ucu kapatılır kapatılmaz bir EOF alır .
İkinci bash için de bazı girdiler vermeyi deneyebilirsiniz:
(echo bash; echo echo hjello) | bash
hjello
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı