我正在尝试理解测试脚本,其中包括以下部分:
OIFS=$IFS;
IFS="|";
答案 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="|";