bash catenate строки справа налево
На этом этапе я отлаживаю этот скрипт catalina.sh:
echo "$CATALINA_HOME"
echo "dot " .
echo "179"
if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then
echo "qui 81"
. "$CATALINA_HOME"/bin/setclasspath.sh
else
echo "185"
echo "Cannot find $CATALINA_HOME/bin/setclasspath.sh"
echo "This file is needed to run this program"
exit 1
fi
вывод:
/home/sysadm/2_KNOWAGE/Knowage_6-2_ARES/Knowage-Server-CE
dot .
179
185
/bin/setclasspath.shsadm/2_KNOWAGE/Knowage_6-2_ARES/Knowage-Server-CE
This file is needed to run this program
когда на самом деле setclasspath.sh exixts, имеет разрешения на запись и находится там, где он должен быть. Поэтому я ожидаю, что он будет найден и запущен.
1 ответ
Решение
Проблема почти наверняка связана с окончаниями строк. Я сильно подозреваю, что CATALINA_HOME подхватывает символ возврата каретки, потому что он был сохранен с окончанием строки Windows.
Попробуйте запустить скрипт через dos2unix
зачистить карету возвращается.
Вы также можете проверить, что в вашем редакторе заданы концы строк Unix, а не Windows.