我一直在使用数组的 ba​​sh 脚本上出现错误的替换错误

Bob*_*-El 7 bash scripts

我一直在使用数组处理 Bash 脚本。我不断收到这条消息,“糟糕的替代品”。所以我用谷歌搜索了这个问题,我想出的每个例子都应该有效,但在我的电脑上却没有。这是一个简单的脚本,据说可以工作。

#!/bin/bash
o="12345"
a=o
b=${!a}
echo ${a}
echo ${b}
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我得到了这个......

bob@Bobz-DT:~/IStests/test script$ sh test4.sh
test4.sh: 4: test4.sh: 替换错误

我正在运行 Ubuntu 14.04 并且 Bash 版本是... GNU bash,版本 4.3.11(1)-release (x86_64-pc-linux-gnu)

有人可以告诉我这是怎么回事吗???

Ter*_*nce 11

您需要以 asbash而不是sh.

所以,运行它

bash test.sh
Run Code Online (Sandbox Code Playgroud)

另一种方式,您可以execute通过执行在文件上设置位

chmod +x test.sh
Run Code Online (Sandbox Code Playgroud)

然后只需运行您的脚本

./test.sh
Run Code Online (Sandbox Code Playgroud)

因为您已经将命令行解释器 ( shebang ) 作为第一行#!/bin/bash