echo -n "# WHICH DAYS? #"
read day
假设用户输入的是:100
101
数字之间有一个空格。例如,我需要分别提取当天的第一列和第二列的值,哪个命令可以给出这个值?我尝试了下面的命令,但它们给出了整个数组;
first_column_of_day=${day[${1}]}
echo "$first_column_of_day"
second_column_of_day=${day[${2}]}
echo "$second_column_of_day"
答案1
首先,你应该告诉read
使用数组。来自help read
:
-a array assign the words read to sequential indices of the array
variable ARRAY, starting at zero
因此,请这样做:
read -a day
然后,只使用1
和2
,不用${...}
。在这种情况下,正如帮助文本所述,从 开始0
:
first_column_of_day="${day[0]}"
second_column_of_day="${day[1]}"
${1}
是脚本的第一个参数,可能是也可能不是1
。
还要注意,bash
可以read
打印提示:
-p prompt output the string PROMPT without a trailing newline before
attempting to read
所以:
read -p "# WHICH DAYS? #" -a day