【发布时间】:2018-12-06 21:06:15
【问题描述】:
我希望做类似的事情:
echo 1 2 | read foo bar
将两个新变量 foo 和 bar 分别设置为值 1 和 2。 (实际上,“echo 1 2”将是对外部数据源的 awk / cut 调用。)
我发现 foo 和 bar 在此行之后不存在,这让我想知道这是否是范围问题?我只在 while 循环中使用了 read,在这些情况下,循环体能够访问变量。
【问题讨论】:
-
管道强制另一个子外壳,因此变量丢失。
-
如果你真的使用
echo 1 2,只需写foo=1 bar=2 ...。如果您使用echo作为简化示例,请不要介意。