簡體   English   中英

Ruby在Shell中打開交互式子進程

[英]Ruby open interactive sub process within the shell

我想使用ruby,並在一瞬間打開另一個程序(cfdisk),並讓用戶與其交互,然后返回我的代碼

我可以使用exec "cfdisk; ruby another.rb"

但這是很棘手的,當然不是正確的選擇

我了解Open3但我不知道如何在用例中正確使用它。 我知道,當我在Windows的irb上使用capture3時,它說:

[“在虛擬控制台上運行,啟用256 /真彩色支持\\ n”,“不支持屏幕尺寸28640x499;限制為500x500。\\ n檢查TERM環境變量。\\ n”,#]

在Arch中,它打開了它,但是沒有圖形輸出,注冊了擊鍵,它們可以工作(例如mc退出並顯示F10),但是窗口不在那里,只是光標閃爍。

分手立即退出

嘗試過popen3但我也沒有運氣

在這種情況下, system了什么問題?

  • exec ruby命令替換正在運行的進程,因此它不會返回您的代碼。
  • 當您要捕獲stdout和stderr時,將使用Open3庫。

這不是您要找的東西嗎?

puts "here"
system "cfdisk"
puts 'there'

如果您有一些與屏幕相關的問題,則可以使用環境變量中的不同TERM值解決另一個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM