我有一个脚本:
#!/bin/bash
{ read a
read b
} <<< $(echo a; echo b)
declare -p a b
我把它写给f
, 做chmod +x ./f
, 并期望它bash ./f
是./f
相同的。
他们不是:
~/dev/test[1]$ ./f
declare -- a="a b"
declare -- b=""
~/dev/test[2]$ bash ./f
declare -- a="a"
declare -- b="b"
我发现bash ./f
使用/usr/local/bin/bash
的是 5.0.16 版,./f
使用/bin/bash
的是 3.2.57 版。
这些版本之间发生了什么变化以使评估有所不同?这是一个已经解决的错误吗?