Echo

如何在命令行中為 .sh 提供輸入

  • April 27, 2018

我有腳本 abc.sh,它向使用者顯示了 4 個選項和我們需要選擇的 1 個選項。起初,我們將輸入作為 1 - 表示第一個選項現在它會再次顯示 3 個選項,我必須選擇 1 - 表示第二個選項。現在此時它會詢問域名,我需要提供 abc/abc@xyz - 作為第三個選項。現在,它會詢問 ENV 詳細資訊,我需要提供 ENV_NO。所以像這樣我想給現有的腳本 abc.sh 提供 4 個不同的輸入。那麼我們如何在 abc.sh 的單個命令中自動提供上述輸入。我們不想編輯現有 abc.sh 中的任何內容

您有一個從其標準輸入中讀取四項內容的現有程序,並且您希望在不與它實際互動的情況下向該程序提供輸入。

您可以準備一個input.txt如下所示的文本文件 ( )(數據取自您的問題文本):

1
1
abc/abc@xyz
ENV_NO

然後,您可以像這樣執行您的腳本:

$ ./abc.sh <input.txt

這將使腳本以互動方式從文件中讀取,而不是從鍵盤讀取。腳本的任何輸出仍將顯示在終端上(如輸入問題),但輸入將從給定文件中讀取。

除了文件,您還可以使用 here-document:

./abc.sh <<END_INPUT
1
1
abc/abc@xyz
ENV_NO
END_INPUT

引用自:https://unix.stackexchange.com/questions/440115