Я использую сервер remot под управлением Ubuntu 13.10 с установленным Bash 4.2.45. Моя домашняя система-OS X Mavericks с установленным Bash 3.2.51 (сборка Darwin). Я не использовал bash много в прошлом, но я работал над довольно большим сценарием и заметил несколько вещей, которые были странными в версии, установленной на удаленном сервере.
возьмем простой скрипт, например:
#!/bin/sh
read n
if ((n > 10)); then
echo "Number is pretty big"
else
echo "NUMBER IS WEAK AND SMALL"
fi
пока под Баш 3.2.51 он признает выражение и работает под Бэш 4 на Ubuntu выдает странную ошибку:
script.sh: 5: script.sh: n: not found
но не только (( . . . )) не распознаются, но иногда переменные и другие логические операторы. Как Новичок bash это очень запутанно, и я хотел спросить, что я могу с этим поделать. Можно ли изменить правила синтаксиса? Или просто понизить удаленный сервер до 3.х.версия y?
Любая помощь приветствуется.