首先,我使用 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,
乙