У меня есть небольшой скрипт для запуска сервера Fluidsynth, а затем подключить его к моему MIDI-устройству на Rasberry (ОС - raspbian stretch lite).
echo "Starting"
fluidsynth -is -a alsa --gain 3 /usr/share/sounds/sf2/Nice-Keys-B-Plus-JN1.4.sf2 &
echo "Fluidsynth started"
while true; do aconnect -o; if [[ $(aconnect -o ) = *FLUID* ]]; then break; fi; sleep 2; done
aconnect 20:0 128:0
echo "Connected"
Параметр aconnect -o вне условия предназначен для отладки.
Когда я выполняю нормально (./startup_fluid_synth.sh), он работает нормально: https://pastebin.com/kU0wDu3w
Мой crontab -e говорит:
@reboot /home/pi/startup_fluid_synth.sh >> /home/pi/fluid.log
Теперь, когда я перезагружаю пи, сценарии запускаются, но журнал ясно показывает, что условие должно быть выполнено, но не выполняется: https://pastebin.com/FnxMKBkF
Есть идеи, почему это может быть?
Обновление: журнал ошибок показывает:
/home/pi/startup_fluid_synth.sh: 4: /home/pi/startup_fluid_synth.sh: [[: not found
Возможно ли, что cron как-то не знает команду [[]]?