[英]Pass YES and NO sequentially to a bash script
我需要將是或否輸入傳遞給 bash 腳本。 它適用於使用yes
的單個輸入,但是如果 bash 腳本有多個輸入(不止一個),我該如何通過它? 以下是單個 yes 輸入的示例:
yes | ./script
如果腳本需要不同的輸入,我不能如下發送,例如:
yes | no | ./script
yes
將y
(或您告訴它發送的任何其他內容)發送到其標准 output。 如果你想在標准 output 上yes
和no
,你可以使用echo
:
{ echo yes
echo no
} | ./script
我對腳本的兩個輸入都使用了 pipe 塊。 還有更多可能的方法,例如
printf '%s\n' yes no | ./script.sh
你可以傳遞 1 yes
,然后 1 no
,然后再傳遞 1 yes
和 1 no
,依此類推:
yes $'yes\nno' | ./script.sh
使用 bash,您可以使用以下語法還原 pipe:
./script < <(yes $'yes\nno')
樣本:
head -n 6 < <(yes $'yes\nno')
yes
no
yes
no
yes
no
...或兩個yes
,一個no
:
head -n 6 < <(yes $'yes\nyes\nno')
yes
yes
no
yes
yes
no
或任何其他組合...
您可以發送您想要的線路 -
printf "yes\nno\n" | ./script.sh
或者如果你需要一定數量的每個 -
{ yes yes |head -50; yes no | head -50; } | ./script.sh
或者,如果您需要切換它們 -
yes | awk '{ if (NR%2) {print "yes"} else {print "no"} }' | ./script.sh
(此處僅使用yes
作為讀取記錄的驅動程序,哈哈)
我們也可以使用下面的命令
echo -e "yes\nno" | ./script.sh
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.