OIFS = $ IFS是什么意思; IFS =“ |”;使用bash脚本

时间:2018-06-26 11:14:25

标签: linux bash shell

我正在尝试理解测试脚本,其中包括以下部分:

OIFS=$IFS;
IFS="|";

3 个答案:

答案 0 :(得分:5)

这里的OIFS是用户定义的变量,用于备份当前Bash internal field separator的值。

然后将内部字段分隔符变量设置为用户定义的值,这可能会启用某种依赖于它的解析/文本处理算法,并在脚本的后面某个位置将其恢复为原始值。

答案 1 :(得分:1)

IFS是内部字段分隔符。该代码段将IFS更改为“ |”保存旧值后,可以稍后再恢复。

示例:

->array=(one two three)
->echo "${array[*]}"
one two three
->IFS='|'
->echo "${array[*]}"
one|two|three

答案 2 :(得分:0)

在shell中,每当需要访问变量的值时,我们就使用$variableName,而每当需要给变量赋值时,我们就使用variableName=xxx。 因此:-

# 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="|";