簡體   English   中英

將 YES 和 NO 依次傳遞給 bash 腳本

[英]Pass YES and NO sequentially to a bash script

我需要將是或否輸入傳遞給 bash 腳本。 它適用於使用yes的單個輸入,但是如果 bash 腳本有多個輸入(不止一個),我該如何通過它? 以下是單個 yes 輸入的示例:

yes | ./script

如果腳本需要不同的輸入,我不能如下發送,例如:

yes | no | ./script

yesy (或您告訴它發送的任何其他內容)發送到其標准 output。 如果你想在標准 output 上yesno ,你可以使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM