Я играю со своим 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]
.
Какова могла быть проблема здесь?
Вы установили первый элемент массива как /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]).