2016-03-24 19 views
1

Aradığım şey etkileşimli bir komut dosyası yürütmek ve kullanıcı için girdi sormak. Giriş formatı, çağrılan programın zamanından başlayarak değişebilir, bu yüzden callee komut dosyasından orijinal istemlere ihtiyacım var ve stdin'i aranana yönlendir.PHP'de passthru() için Ruby alternatif?

Şu anda PHP'deki passthru() işlevinin yalnızca ihtiyacım karşıladığını buldum. Bununla birlikte, passthru() işlevinin uygulanmasına ya da uygulanmasına bir alternatif var mı?

GÜNCELLEME

örneği (gerçek durum olarak daha basit) kendimi açıklamak:

puts `sudo apt-get -y upgrade` 

sudo komut parola isteyebilir. sudo için giriş formatı sabit kalır, bunun için popen kullanabilirim. Ancak, çağrılan komutun giriş formatı çok karmaşıksa ve zaman zaman değişiyorsa ne olur?

+0

Bir linux komutu yürütmek ve sonucu yakut almak mı istiyorsunuz? Cevabınız için –

+0

@VitaliMogilevsky Thx. Tam olarak değil, bir komutu çalıştırmak istiyorum ama Ruby'de çıktıya gerek yok. Ancak, kullanıcı girdisini alıp çağırılan komuta iletmem gerekiyor. – xiGUAwanOU

+0

Ne yapmaya çalıştığınıza% 100 emin değilim, param = gets ayarını yaparak kullanıcı girdisini okuyabilir, sonra istediğiniz yerde paramızı kullanabilirsiniz. Komutta kullanmak istiyorsanız, sadece normal dize olarak kullanın –

cevap

1

PTY.spawn ile istediğiniz şeyi elde edebilirsiniz. this answer'a bir göz atın.

+0

Teşekkürler! Aradığım şeyden biraz farklı olsa da, şimdilik benim için hala çalışıyor. – xiGUAwanOU