[英]Ruby Executing Bash Commands on Linux
我正在嘗試編寫一個ruby腳本,以使用“ macchanger”工具快速更改我的無線mac地址。我擁有更改它的所有root用戶權限。 我嘗試這樣做:
`ifconfig #{@wifi_device.getName()} down`
output= `macchanger -m AA:BB:CC:DD:EE:FF #{@wifi_device.getName()}`
`ifconfig #{@wifi_device.getName()} up`
它通常可以正常工作,但是當出現問題時,例如我輸入了無效的mac地址,bash打印出任何錯誤,我無法從Ruby捕獲到它,它僅打印成功消息,而不是錯誤。 當我嘗試一個無效的mac時,我的問題是是否有任何建議可以擺脫執行bash命令並正確讀取輸出的問題。
使用此 macchanger時,無需調用shell命令。 您可以將macchanger放入您的當前文件夾,然后require_relative './macchanger'
。 之后,您可以使用MacChanger
類
Shell需要知道將stderr發送到哪里。 2>&1
是執行此操作的好方法,它將2(stderr)重定向到1(stdout),這是“輸出”正在捕獲的內容。
output= `macchanger -m AA:BB:CC:DD:EE:FF #{@wifi_device.getName()} 2>&1`
《高級Bash腳本指南》在I / O重定向方面有一章非常出色。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.