2022年11月2日 星期三

Shell script 在執行程式時,遇到詢問時,如何自動回應

某些程式在執行的過程中,會進行詢問,舉例來說:

$ some-program 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi mattis velit purus, et bibendum neque dapibus ut. Aliquam erat volutpat. Sed vulputate fermentum eros eu consequat. Vivamus in tellus sit amet dui fringilla tempor sed in lectus. Vestibulum dapibus justo elit, imperdiet vehicula nisi varius id. Nulla posuere ante eu augue commodo ultricies. Nulla nec mauris elit. Donec dolor dolor, interdum eget eleifend ac, rhoncus sit amet libero. Proin ullamcorper luctus libero, id porta tellus ultricies venenatis. Nunc lobortis vulputate diam, in dictum libero scelerisque eget. In et est nulla. Integer venenatis vitae ligula ac faucibus.

----------

Accept? (y/N):

詢問你是否同意,如果同意才能繼續進行。


如果我只是自己開終端機執行也就算了,鍵盤輸入 y 就好,但如果是寫 shell script 就不一樣了


查了一堆資料後,最後找到解法。

以上面的例子為例,我要輸入 y。那我可以寫成這樣:

$ echo "y" | some-program 

改成這樣後就會自動幫你輸入 y


⚠️注:這招我試過了,沒法在 windows 上的 cmd 上使用

參考資料

How do I automatically answer y in bash script?. Unix & Linux Stack Exchange. https://unix.stackexchange.com/q/512367
tnth, (2010, October 23). 回覆:如何在shell script 中,讓呼叫的程式詢問(y/n)時,自己回應y呢. 酷!學園. http://phorum.study-area.org/index.php/topic,63445.msg319054.html?PHPSESSID=kcn025hk1jhuomctpqh3ah7co5#msg319054

沒有留言:

張貼留言