Bash
如何通過讀取命令使用多個變數進行輸入?
我正在使用 GNU bash - 版本 4.2.10(1)。我想在 shell 腳本中使用單個**讀取命令讀取多個變數。**所以我嘗試如下:
echo " Enter P N R : " read P N R
但它不起作用。它只要求 P 變數的單個值並返回提示。我用Google搜尋但沒有找到任何解決方案。
read
, 不-r
期望輸入的單詞由特殊參數的字元分隔$IFS
(預設情況下為 SPC、TAB 和 NL,儘管read
除非它以反斜杠結尾,否則 NL 不能計數),其中反斜杠可用於轉義分隔符或允許一行在下一個物理行上繼續(刪除反斜杠換行序列)。因此,使用者必須在此處輸入 P、N、R 空格或製表符分隔的值,例如:
value_for_P value_for_N value_for_R
或者,如果值可以包含空格:
value\ for\ P value\ for\ N value for R
(這裡我們沒有費心為 R 轉義空格,因為第三個單詞之後的行的其餘部分無論如何都會在 R 中結束;儘管使用者仍然需要轉義尾隨空格)。
如果您希望使用者在 3 行上輸入值,則需要 3
read
次呼叫。然後,您希望-r
避免反斜杠處理並使 IFS 為空:IFS= read -r P IFS= read -r N IFS= read -r R