此括号内的脚本行(IFS =':'read -r -a array <<<“ $ passPercent”)在括号内做什么?

时间:2019-03-30 06:57:52

标签: bash shell

此括号内的shell脚本行( IFS=':' read -r -a array <<< "$passPercent" )在做什么。 还请说明此行中每个参数的用途。

$ passpercent实际上是一个在其中存储一些curl数据的变量。

1 个答案:

答案 0 :(得分:0)

read -a array读取文本并将其从标准输入中拆分为变量array。拆分发生在IFS的值上,该值在此操作期间设置为冒号。

-r的{​​{1}}选项会禁用一些带有反斜杠的旧行为,除非您试图模拟shell本身如何处理反斜杠,否则基本上应始终使用该反斜杠。

“此处字符串” read<<<value作为标准输入传递给流程。

括号使命令在子shell中运行。这里没有特别的意义。通常,我们使用子外壳来限制变量分配的范围(也许在本地覆盖value;但在这里,无论如何IFS仅在IFS的持续时间内才分配)或更改工作目录。

也许我应该特别指出

read

仅在执行variable=value command 的过程中设置variable的值,这与

command

从此处开始设置variable=value; command 的值,然后执行variable和变量设置为该值的任何后续代码,直到再次重新分配它,或者此shell实例终止。