#!/bin/bash
value=$(</var/www/sym_monitor/man_mon.txt)
value2=$(</var/www/sym_monitor/panel_mon.txt)
pro=$(ps -ef |grep sym |grep -v grep |awk '{ print $2 }')
echo "$pro";
echo "STARTED";
if [ "$value" == "false" ]; then
cd /var/www/symmetric-ds-3.1.6/bin;
sleep 30;
(sudo ./sym --port 8082 --server);
#(sudo /bin/bash /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server);
echo "IF";
else
if [ "$value2" == "false" ]; then
cd /var/www/symmetric-ds-3.1.6/bin;
sleep 30;
(sudo ./sym --port 8082 --server);
#(sudo /bin/bash /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server);
echo "ELSEIF";
else
if[ "$pro" == "" ]; then
echo "pro";
cd /var/www/symmetric-ds-3.1.6/bin;
sleep 30;
(sudo ./sym --port 8082 --server);
fi
fi
fi
echo "END";
В приведенном выше скрипте в последнем случае, если дается синтаксическая ошибка. Есть идеи? В переменной $ pro, даже если такой процесс не запускает некоторые идентификаторы процесса? Зачем?else if в bash script дает ошибку
Перед тем, как этот сценарий выглядит ниже и работает абсолютно нормально.
#!/bin/bash
value=$(</var/www/sym_monitor/man_mon.txt)
value2=$(</var/www/sym_monitor/panel_mon.txt)
if [ "$value" == "false" ]; then
cd /var/www/symmetric-ds-3.1.6/bin;
sleep 30;
(sudo ./sym --port 8082 --server);
#(sudo /bin/bash /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server);
elif [ "$value2" == "false" ]; then
cd /var/www/symmetric-ds-3.1.6/bin;
sleep 30;
(sudo ./sym --port 8082 --server);
#(sudo /bin/bash /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server);
fi
Это первая версия скрипта, которая работала абсолютно нормально. Но я должен добавить к нему еще одно условие, которое, если ни один процесс не работает, как упоминалось в первом скрипте выше, тогда код в состоянии должен работать. Я не знаю, почему, несмотря на отсутствие процесса, он дает некоторые числа в значение $ pro. Есть идеи?
Какова была ошибка? – FatalError
попытаться исправить отступа. Его вероятное что вы найдете ошибку при этом. – hek2mgl
Некоторые исправления стиля, кроме фактической ошибки: не используйте ';' в конце строк в сценариях оболочки и используйте 'elif' вместо' else if' (а также удалить дополнительную 'fi's). Также есть ли какая-либо причина, по которой вы выполняете команды' sudo' в подоболочках (с круглыми скобками)? –