我有一個bash文件,提示用戶輸入一些參數,如果沒有提供任何參數,則使用默認值。然後腳本繼續執行一些其他帶參數的命令。 這很好 - 直到最近的加入沒有問題。如何在while循環讀取行中讀取用戶?
在嘗試從txt文件中讀取NAMES參數時,我添加了一個while循環來獲取文件中的名稱,但我仍然希望提示其餘的參數。
但是,一旦我添加了while循環,輸出將顯示get_ans()中的打印提示,並且從不會暫停讀取,因此將選擇所有默認值。
我想從文件中讀取第一個參數,然後從提示用戶讀取所有後續文件。
我通過添加while循環而破壞了什麼?
cat list.txt |
while read line
do
get_ans "Name" "$line"
read NAME < $tmp_file
get_ans "Name" "$line"
read NAME < $tmp_file
done
function get_ans
{
if [ -f $tmp_file ]; then
rm $tmp_file
PROMPT=$1
DEFAULT=$2
echo -n "$PROMPT [$DEFAULT]: "
read ans
if [ -z "$ans" ]; then
ans="$DEFAULT"
fi
echo "$ans" > $tmp_file
}
:
我想看看你的其他答案這(一個告訴你如何做決定接受前_solve_的問題,它不只是什麼)。 – 2012-03-13 17:05:12