1
我有一個腳本,它調用一個輸出數據並永不停止的無限命令。我想檢查一下這個命令是否輸出一個特定的字符串,比如說「Success!」,然後我想停止它並移動到腳本的下一行。不斷檢查Bash命令的輸出
這怎麼可能?
在此先感謝。
編輯:
#!/bin/bash
xrandr --output eDP-1-1 --mode 2048x1536
until steam steam://run/730 | grep "Game removed" ; do
:
done
echo "Success!"
xrandr --output eDP-1-1 --mode 3840x2160
我所有的腳本所做的是改變分辨率,開始了蒸汽遊戲,然後等待消息出現在指示遊戲被關閉輸出,然後更改分辨率回到原來的樣子。
我提到的消息每次都會出現,但Steam進程仍在運行。這可能是問題嗎?
如果我手動關閉Steam,那麼腳本將繼續像我想要的那樣。
感謝您的快速回復!如果我在到達該字符串後想「回顯」某些內容,該怎麼辦?我應該把它代替':'還是'完成'後? – AnDrOiD
@安德魯伊:它應該在'完成'之後,記住':'部分是在沒有任何事情發生的無限循環中。您也可以通過睡眠節省幾個CPU週期! – Inian
在完成之後放置它是我嘗試的第一件事,但由於某種原因它不起作用。我拿下了'-q',這樣我就可以確定它真的到達了字符串,並且它確實如此。可能是什麼問題? – AnDrOiD