Считаете, что Ubuntu недостаточно дружелюбна к новичкам? Помогите создать новое Руководство для новичков!
0 Пользователей и 1 Гость просматривают эту тему.
if ( Условие ) then Если условие истинно, то..//..выполняются операторы №1 else В противном случае... //..выполняются операторы №2 и затем вне зависимости какое условие отработало выполняется следующий такой же блок с таким же условием, но с другими операторами fiif ( Условие ) then Если условие истинно, то..//..выполняются операторы №1 else В противном случае... //..выполняются операторы №2 и затем вне зависимости какое условие отработало выполняется следующий такой же блок с таким же условием, но с другими операторами fi...
2:L~$ 2:L~$ echo $[1+1]22:L~$ ((1>2)) && echo 22:L~$ ((1>2)) && echo yes2:L~$ ((2>1)) && echo yesyes2:L~$ ((2>2)) && echo yes2:L~$ ((2>3)) && echo yes2:L~$ ((2>1)) && echo yesyes2:L~$ ((2>1)) || echo yes2:L~$ ((2>2)) || echo yesyes2:L~$ ((2>3)) || echo yesyes2:L~$ ((2>1)) || echo yes2:L~$ 2:L~$
2:L~$ 2:L~$ a=52:L~$ b=102:L~$ echo $a+$b5+102:L~$ echo $[a+b]152:L~$ echo $a+$b=$[a+b]5+10=152:L~$ 2:L~$ if ((a>b));then;echo yes;fibash: ошибка синтаксиса около неожиданной лексемы `;'2:L~$ if ((a>b));then echo yes;fi2:L~$ 2:L~$ if ((a<b));then echo yes;fiyes2:L~$ if ((a<b+b));then echo yes;fiyes2:L~$ if ((a+a<b));then echo yes;fi2:L~$ 2:L~$
BloodyFRag, Оптимально было бы привести реальный код, а ещё лучше общую конечную задачу.
#!/bin/bashspace=`df -h /dev/sda6 | awk '{print $5}' | grep % | grep -v использовано% | tail -1 | cut -d "%" -f1 -` alertvalue="95"if [ "$space" -ge "$alertvalue" ]; thenfind /mnt/Shared/vdrg/vid -mtime +28 -delete if [ "$space" -ge "$alertvalue" ]; then find /mnt/Shared/vdrg/vid -mtime +27 -delete if [ "$space" -ge "$alertvalue" ]; then find /mnt/Shared/vdrg/vid -mtime +26 -delete if [ "$space" -ge "$alertvalue" ]; then find /mnt/Shared/vdrg/vid -mtime +25 -delete if [ "$space" -ge "$alertvalue" ]; then find /mnt/Shared/vdrg/vid -mtime +24 -delete fi fi fi fifi
BloodyFRag,кажется, у вас конструкция не совсем так задана
BloodyFRag,странно, но у меня вот работает
1 блокif[ "$space" -ge "$alertvalue" ] сравнивает переменные и если space больше alertvalue то ... thenfind /mnt/Shared/vdrg/vid -mtime +28 -delete //.. Удаляем файлы 28-ми дневной давности и переходим ко второму блокуfi2 блокif[ "$space" -ge "$alertvalue" ] сравниваем переменные и если ПО ПРЕЖНЕМУ space больше alertvalue то ... thenfind /mnt/Shared/vdrg/vid -mtime +27 -delete //.. Удаляем файлы 27-ми дневной давности и переходим к третьему блокуfi3 блокif[ "$space" -ge "$alertvalue" ] сравниваем переменные и ДОПУСТИМ space меньше alertvalue то ... thenfind /mnt/Shared/vdrg/vid -mtime +26 -delete //.. НЕ удаляем файлы 26-ми дневной давности и прекращаем выполнение скрипта.fi...4 блок...5 блок...
BloodyFRag,да-да, я вас не так понял сначала.Вам надо в цикл сделать, что бы он удалил и сравнил. Если после удаления стало 96% - продолжить удалять, если стало 93% - выйти и закончить.
while <проверка_места> ; do <определяем_последнюю_дату> rm <data>.*done
Ну вот видите, выбран неверный путьКод: (bash) [Выделить]while <проверка_места> ; do <определяем_последнюю_дату> rm <data>.*done
mv file.txt file.txt.bakrm *.bak
#!/bin/bashspace=`df -h /dev/sda6 | awk '{print $5}' | grep % | grep -v использовано% | tail -1 | cut -d "%" -f1 -` alertvalue="95"lastday='cd /mnt/Shared/vdrg/vid ; ls -1ARrl --time-style=long-iso | tail -n1 | awk '{print $6}'' //.. ищем папку с последней датойif [ "$space" -ge "$alertvalue" ]; then //..если space больше alertvalue то...find /mnt/Shared/vdrg/vid -name $lastday -type d -delete //.. удаляем то что нашлиfi
Страница сгенерирована за 0.073 секунд. Запросов: 23.