了解 bash 读取变量替换

了解 bash 读取变量替换

首先,我使用 Bash 的经验很少,对于我的英语不好我深表歉意。也许这是显而易见的。

我试图理解为什么 Bash 会删除这个 oneliner 中变量的值。

echo "Alpha;Beta;Gamma" | IFS=";" read First Second Third; echo $First $Second $Third

无输出

echo "Alpha;Beta;Gamma" | (IFS=";" read First Second Third; echo $First $Second $Third)

有正确的输出

Alpha Beta Gamma

我猜该read命令会打开一个子 shell,当它关闭时,变量会丢失它们的值。

如果我是对的,如何预防呢?

目标是将类似 CSV 的结构分离为变量。

谢谢建议!

BR,

相关内容