What is the meaning of OIFS=$IFS; IFS=“|”; in bash script
本问题已经有最佳答案,请猛点这里访问。
我试图理解一个测试脚本,其中包括以下部分:
1 2 | OIFS=$IFS; IFS="|"; |
这里的oifs是一个用户定义的变量,用于备份当前的bash内部字段分隔符值。
然后将内部字段分隔符变量设置为用户定义的值,可能会启用某种依赖于它的分析/文本处理算法,并在脚本的某个地方还原为其原始值。
IFS是内部字段分隔符。在保存旧值之后,代码段将IFS更改为"",以便以后可以还原它。
例子:
1 2 3 4 5 6 | ->array=(one two three) ->echo"${array[*]}" one two three ->IFS='|' ->echo"${array[*]}" one|two|three |
在shell中,当我们需要访问变量的值时,我们使用
1 2 3 4 5 | # here we assigning the value of $IFS(Internal Field Separator) in OIFS. OIFS=$IFS; # and here we are re-assigning some different value to IFS. # it's more like, first we store old value of IFS variable and then assign new value to it. So that later we can use the old value if needed. IFS="|"; |