0
我試圖通過將一堆單個腳本分組來加速某些工作流程,我們只需要通過一個shell腳本連續調用該腳本即可。問題是我試圖調用的其中一個腳本依賴於一系列提示和讀取語句來獲取輸入。將輸入從一個shell腳本傳遞到另一個腳本使用讀取
這是一個非常廣泛使用的腳本,所以我不想繞着改變它如何接受輸入。有沒有辦法以這種方式提供參數,以便將它們按正確的順序作爲對每個提示的「響應」來讀取?
我試圖通過將一堆單個腳本分組來加速某些工作流程,我們只需要通過一個shell腳本連續調用該腳本即可。問題是我試圖調用的其中一個腳本依賴於一系列提示和讀取語句來獲取輸入。將輸入從一個shell腳本傳遞到另一個腳本使用讀取
這是一個非常廣泛使用的腳本,所以我不想繞着改變它如何接受輸入。有沒有辦法以這種方式提供參數,以便將它們按正確的順序作爲對每個提示的「響應」來讀取?
只需在標準輸入框中輸入您想要的內容即可。一個簡單的方法是使用定界符:
./secondscript <<EOF
$first_answer
$second_answer
...etc...
EOF
假設的first_answer
,second_answer
等數值都各佔一行,他們將被輸送到相應所以調用的腳本中調用read
。
謝謝,我會試試看。 – lemmox
「不要這樣設計你的腳本」真的是更好的答案。這就是說,是的,你可以用stdin提供輸入。 –
我不會寫我的,我可以承諾。對不起,你是什麼意思,我對此很新。 – lemmox
*點頭*。至少,可以檢查環境變量中正在輸入的內容,並且只有在未設置時纔會提示:'[[$ foo]] || {printf'%s'「爲foo輸入值:」;讀foo; }' - 這爲您提供了一種路徑,使腳本更容易編程調用,而無需更改舊版用戶的行爲。 –