Linux内部字段分离符环境变量IFS:用于bash shell,默认bash shell 会将空格、制表符/t、换行符/n 当成字段分隔符
arr=(/pubsentiment?action=chezhi&site=bbs.12365auto.com&method=inner&id=1&date=&version=1590050449:3h:1:1;/pubsentiment?action=pcauto&site=bbs.pcauto.com.cn&method=default&id=3&date=&version=1590050449:3h:1:3;)
OLD_IFS="$IFS"
IFS=";" #IFS是linux的环境变量,定义了bash shell 用户字段分离符的一系列字符,默认bash shell 会将空格、制表符/t、换行符/n 当成字段分隔符
arr1=($arr)
echo $arr1
备注说明:在shell脚本较大时可能在某些部分需要修改IFS,而某些部分要改回默认的IFS值,代码结构示例如下:
OLD_IFS="$IFS"
IFS=":" #获取冒号分隔符前的第一个数
arr2=($s)
IFS=$OLD_IFS
关于 IFS 、$ 、单双引号
IFS默认值是空格、制表符和换行符,此处以换行符\n来讨论,IFS=’\n’,IFS=KaTeX parse error: Undefined control sequence: \n at position 2: "\̲n̲",IFS=’\n’,第一个和第二个是等价的,就是普通字符反斜杠和n,第三个是一个先转换为了回车符NL,在屏幕上直接就回车了。