【发布时间】:2019-12-18 06:34:05
【问题描述】:
我有一个在 Ubuntu 16.04 中运行良好的 bash 脚本文件,但自从我升级到 Ubuntu 18.10 后它就无法运行了。
#!/bin/bash
a="1"
name="a"
value=${!name}
echo "value=" $value # "value=1"
name="some string"
value=${!name} # bad substitution error
在 Ubuntu 16.04 中,value=${!name} 不会发生“错误替换错误”,它会将空值分配给“值”。 但在 Ubuntu 18.04 中,它显示“替换错误”并停止工作。 我希望它像在 Ubuntu 16.04 中一样工作。
【问题讨论】:
-
请在 ubuntu 16.04 和 18.04 上发布 bash 版本。它们有什么不同吗?
-
Ubuntu 16.04 GNU bash 版本 4.3.48(1)-发布 Ubuntu 18.10 GNU bash 版本 4.4.19(1)-发布
-
它在 Ubuntu 18.04 (With bash 4.4.20) 上一直为我工作
标签: shell ubuntu substitution