作者 主題: shell 是否可以讀 console 程式輸出文字  (閱讀 2136 次)

0 會員 與 1 訪客 正在閱讀本文。

gundam

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
小弟因程式上的需要,要讀 console 輸出的文字去辨別要如何回應程式功能是否正確,
要使用 Shell 來寫,請問是否可行?
如果可以要如何讀顯示的文字?

gundam

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
Re: shell 是否可以讀 console 程式輸出文字
« 回覆 #1 於: 2014-02-17 15:48 »
我說的白話一點好了

我想抓程式中顯示的文字訊息


Event: time  137.487, type 1 (key), code 256 (Bth0), value 0
是否可以用 shell 抓 Btn0 之後的文字 進行處理

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: shell 是否可以讀 console 程式輸出文字
« 回覆 #2 於: 2014-02-17 16:16 »
如果是命令產生的,當然可以啊~~ ^_^

gundam

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
Re: shell 是否可以讀 console 程式輸出文字
« 回覆 #3 於: 2014-02-17 16:20 »
不算是命令產生的
是程式執行時回應的訊息
這個是否可以使用shell 抓到變數中?

dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
Re: shell 是否可以讀 console 程式輸出文字
« 回覆 #4 於: 2014-02-17 18:11 »
這訊息是哪隻程式吐出來的 ?
是 C 的程式 ? 載入 kernel 使用 printk() ?

您的需求是臨時 , 還是以後都要這麼用 ?
你在怎樣的硬體設備上 ?


以上問題釐清前 , 有 n 條叉路 ...


假設是 kernel module 使用 printk() 吐到終端
您只是臨時 debug , 而且跑 vmware

搜尋 grub console tty 關鍵字
能把資料送到 com port
vmware 再新增這硬體為檔案
host_os 抓檔案資訊 , 或傳回 guest_os

若是實體機 , minicom 就抓回來了

若沒 com port
mknod 指令能建立 dev 檔
grub 能不能建沒試過
(經驗中只用過 mknod xxx p , 且這端口要有常駐程式一直讀不能斷開)


gundam

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
Re: shell 是否可以讀 console 程式輸出文字
« 回覆 #5 於: 2014-02-17 18:40 »
要讀的程式只是Linux 下的應用程式 不是kernel Driver
硬體是 arm cortex a8 硬體 有使用 com port 但只用在看訊息和下命令而己,沒有傳輸使用
應用程式在背景執行 ./evtest &
應用程式是別人寫的程式,要做功能加強,但又沒有程式碼,或也可說對方不會給程式碼
只是想用shell 執行後讀出 evtest 吐出的訊息到變數中,再根據訊息變化做出不同回應
如果測試可行 以後都會這樣用,因有很多應用會用到
« 上次編輯: 2014-02-17 18:46 由 gundam »

dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
Re: shell 是否可以讀 console 程式輸出文字
« 回覆 #6 於: 2014-02-17 18:55 »
那改執行 ..

./evtest | while read x;do [ "$(echo "$x" | grep th)" != "" ] && echo "$x" | sed 's/Bth/what is Bth/g' ;done &

有反應嗎 ?

gundam

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
Re: shell 是否可以讀 console 程式輸出文字
« 回覆 #7 於: 2014-02-17 19:03 »
我再分析一下你的shell 是否可動

謝謝
« 上次編輯: 2014-02-17 19:34 由 gundam »