Помогите мне пишущий использование программирования оболочки if
else
, все использование кода possibile [[ ]]
, [ ]
, (( ))
.
Я попробовал, но это не работает (можно проверить моих предыдущих бинарных операторов Арифметики вопроса-gt, - Это дает ошибку, но работу в сценарии оболочки).
Вот версия C:
int i = 10, n = 20;
if (i < n)
printf("i smaller");
else if (i > n)
printf("n smaller");
else
printf("same");
Что относительно
#!/bin/sh
i=1
n=2
if [ "$i" -gt "$n" ]; then
echo "i is bigger"
elif [ "$n" -gt "$i" ]; then
echo "n is bigger"
else
echo "same"
fi
второй...
#!/bin/bash
i=1
n=2
if ((i > n)) ; then
echo "i is bigger"
elif ((i < n)); then
echo "n is bigger"
else
echo "same"
fi
и продержитесь тот...
#!/bin/bash
i=1
n=2
if [[ $i -gt $n ]]; then
echo "i is bigger"
elif [[ $i -lt $n ]]; then
echo "n is bigger"
else
echo "same"
fi
У меня есть следующий сценарий, чтобы удостовериться, что некоторые сервисы не ложатся спать. Это также каждый день делает резервное копирование mysql, проверки на сервисы онлайн и если не они повышаются снова и т.д. Не моя лучшая работа, но дает Вам общее представление относительно того, как использовать, ЕСЛИ и то же ЕЩЕ идет для ЕСЛИ:
#!/bin/bash
function checker() {
PID1=$(pidof authserver)
PID2=$(pidof worldserver)
PID3=$(date +%k%M)
PID4=$(date +%d_%m_%y)
Destiny=/root/bck
if [ -z "$PID1" ]; then
echo 3 > /proc/sys/vm/drop_caches
screen -A -m -d -S auth ./bin/authserver
fi
if [ -z "$PID2" ]; then
echo 3 > /proc/sys/vm/drop_caches
screen -A -m -d -t titan -S world ./bin/worldserver
fi
if [ "$PID3" -eq 230 ]; then
screen -S world -p titan -X stuff $'anno SERVIDOR CERRADO DENTRO DE 10 MINUTOS POR UNA DURACION DE 30 SEGUNDOS PARA OPTIMIZACIONES\n'
sleep 300
screen -S world -p titan -X stuff $'anno SERVIDOR CERRADO DENTRO DE 5 MINUTOS POR UNA DURACION DE 30 SEGUNDOS PARA OPTIMIZACIONES\n'
sleep 180
screen -S world -p titan -X stuff $'anno SERVIDOR CERRADO DENTRO DE 2 MINUTOS POR UNA DURACION DE 30 SEGUNDOS PARA OPTIMIZACIONES\n'
screen -S world -p titan -X stuff $'ser shut 120\n'
sleep 120
/etc/init.d/apache restart
sleep 5
mysqldump -uroot -px chart > $Destiny/c$PID4.sql
mysqldump -uroot -px auth > $Destiny/a$PID4.sql
/etc/init.d/mysql restart
sleep 5
killall -9 worldserver
killall -9 authserver
echo 3 > /proc/sys/vm/drop_caches
fi
return 1
}
while :
do
checker
sleep 5
done
Как я сказал, не лучшее, но сделал задание.