sh sudo 字符串参数

sh sudo 字符串参数

我正在玩我的 Raspberry Pi Zero,并尝试自动执行 FM 发射器脚本。

你可以使用以下命令运行脚本sudo fm_transmitter -f [frequency] -r [.wav music file]

例如:

sudo fm_transmitter -f 103 -r star_wars.wav

我的代码:

musics[0] = "/home/pi/radio/fm/star_wars.wav"

sudo /home/pi/radio/fm/fm_transmitter -f 103 -r musics[0]

由于找不到,它给了我一个错误musics[0]

这可能是什么问题?

答案1

您已将数组的第一个元素设置如下/home/pi/radio/fm/star_wars.wav行:

musics[0]="/home/pi/radio/fm/star_wars.wav"

要访问内容,您需要使用$如下方法扩展该数组元素:

sudo /home/pi/radio/fm/fm_transmitter -f 103 -r "${musics[0]}"

引号""用于保留输出的格式,括号{}是扩展数组变量的一部分。

不清楚为什么在这里使用数组,而标准变量可以工作。您可以替换:

musics[0]="/home/pi/radio/fm/star_wars.wav"

musics="/home/pi/radio/fm/star_wars.wav"

并且使用该变量的行更改为:

sudo /home/pi/radio/fm/fm_transmitter -f 103 -r "$musics"

这更简单,因为您不需要使用索引号([0] 引用的部分)。

相关内容