[英]Passing arguments to an interactive program non-interactively
我有一個 bash 腳本,它使用read
命令以交互方式讀取 arguments 到命令,例如是/否選項。 有沒有辦法在將默認選項值傳遞為 arguments 的非交互式腳本中調用此腳本?
這不僅僅是我必須傳遞給交互式腳本的一個選項。
對於更復雜的任務, expect
( http://en.wikipedia.org/wiki/Expect )。 它基本上模擬了一個用戶,你可以編寫一個腳本來對特定的程序輸出和相關的東西做出反應。
這也適用於像ssh
這樣禁止向其輸入密碼的情況。
您可以將數據放在文件中並像這樣重新定向它:
$ cat file.sh
#!/bin/bash
read x
read y
echo $x
echo $y
腳本數據:
$ cat data.txt
2
3
執行腳本:
$ file.sh < data.txt
2
3
只是想再添加一種方式。 在別處找到的,很簡單。 假設我想在命令行中為命令“execute_command”的所有提示傳遞“是”,然后我只需將“是”傳遞給它。
yes | execute_command
這將使用是作為所有是/否提示的答案。
您還可以使用 printf 將輸入通過管道傳輸到您的腳本。
var=val
printf "yes\nno\nmaybe\n$var\n" | ./your_script.sh
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.