我在使用IFS将字符串转换为数组时遇到了问题。这是我的字符串:
"Jun01 Jun02 Jun03 Jun04 Jun05 ..." #in that format, separated by spaces
以下是我尝试的代码:
在这里展示了我尝试过的代码:
IFS=" " #set it to space character
DATES_ARRAY=($DATES_STRING) #from above
echo ${DATES_ARRAY[0]} #output is empty
然而,当我去掉IFS这一行时,它就可以工作了。但是,我使用了几行代码来打印出它的默认ASCII值,我得到了'32',这意味着空格字符。作为一个强迫症程序员,我想自己设置以确保安全...但我不知道它如何在先验上预设!那么,为什么手动将IFS设置为空格符号会失效呢?
string="a b c d e"; tokens=(${string}); echo "Third token: ${tokens[2]}"
输出Third token: c
,正如我所期望的那样。 - smocking