![sh sudo 字符串参数](https://linux22.com/image/907954/sh%20sudo%20%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%8F%82%E6%95%B0.png)
我正在玩我的 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] 引用的部分)。