【发布时间】:2018-11-22 18:07:41
【问题描述】:
我有一个名为test.sh 的小脚本,它根据给定的索引打印值。
#!/bin/sh
days_in_month=(0 31 28 31 30 31 30 31 31 30 31 30 31)
echo "${days_in_month[$1]}"
如果我使用bash 执行,上面的代码可以正常工作。
$ bash test.sh 1
31
但我需要在具有sh 作为Busybox 包的一部分的嵌入式板上执行相同的脚本。当我在该板上运行命令时,它会引发错误。
$ sh test.sh
test.sh: line 2: syntax error: unexpected "("
我观察到当我在 Ubuntu 系统中使用 dash 而不是 bash 时会引发相同的错误。
$ dash test.sh
test.sh: line 2: syntax error: unexpected "("
有什么方法可以更改代码,以便 Busybox sh 执行时不会出现任何错误?
【问题讨论】:
标签: bash sh busybox dash-shell