Условие Bash не выполнено при выполнении crontab

Условие Bash не выполнено при выполнении crontab

У меня есть небольшой скрипт для запуска сервера fluidsynth и его последующего подключения к моему MIDI-устройству на моем Raspberry (ОС — 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

Теперь, когда я перезагружаю pi, скрипты запускаются, но в журнале четко видно, что условие должно быть выполнено, но этого не происходит:https://pastebin.com/FnxMKBkF

Есть идеи, почему это может быть?

Обновлять: Журнал ошибок показывает:

/home/pi/startup_fluid_synth.sh: 4: /home/pi/startup_fluid_synth.sh: [[: not found

Возможно ли, что cron каким-то образом не знает команду [[ ]]?

решение1

Добавление #!/bin/bash в файл .sh решило проблему.

#!/bin/bash
echo  "Starting"
/usr/bin/fluidsynth -is -a alsa --gain 3 /usr/share/sounds/sf2/Nice-Keys-B-Plus-JN1.4.sf2 &
echo "Fluidsynth started"
while true; do /usr/bin/aconnect -o; if [[ $(/usr/bin/aconnect -o ) = *FLUID* ]]; then break; fi; sleep 2; done
/usr/bin/aconnect 20:0 128:0
echo "Connected"

Связанный контент