bash

Автор MERCURY, 26 июля 2015, 12:24:02

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

MERCURY

Подскажите кто знает как в коде правильно реализовать следующее :
1) при возврате из переменной $date кода 1 - удалить временные файлы и завершить скрипт
2) при возврате  кода 0 из kdialog --textbox - выполнить всё тело скрипта заново
Открыть содержимое (спойлер)

#!/bin/bash

# unoconv - must be installed !!!

today=`date +%x`
tdfile=./Займы.ods
csvfile=/tmp/$today.csv
awkcsv=/tmp/$today-awk.csv
echo "Займ № Дата истечения     Сумма возврата $" >> $awkcsv

date=`kdialog --calendar "<br/> Укажите дату для просмотра строка <br/> истечения ваших займов<br/><br/>" | awk 'BEGIN {OFS="."}{if ($2=="янв") $2="01"; if ($2=="фев") $2="02"; if ($2=="мар") $2="03"; if ($2=="апр") $2="04"; if ($2=="май") $2="05"; if ($2=="июн") $2="06"; if ($2=="июл") $2="07"; if ($2=="авг") $2="08"; if ($2=="сен") $2="09"; if ($2=="окт") $2="10"; if ($2=="ноя") $2="11"; if ($2=="дек") $2="12"; print $3, $2, $4}'`
if [ $? = 0 ];
then
unoconv -e FilterOptions=59/,,76 -f csv -o /tmp/$today.csv $tdfile && grep $date $csvfile | awk -F ";" '{print $1, "\t\t" $4, "\t\t" $8}' >> $awkcsv
kdialog --textbox $awkcsv 512 256
if [ $? = 0 ];
then
$date
fi
рм -рф /tmp/*.csv
fi
[свернуть]

Malaheenee

В данном случае лучше использовать конструкцию case.
рм -рф здесь не обязателен. Вполне сгодится просто рм -ф. Иначе можно натворить делов :)
Все мы где-то, когда-то и в чем-то были новичками.

alsoijw

Цитата: Malaheenee от 26 июля 2015, 14:41:35Иначе можно натворить делов :)
Каких например?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Malaheenee

Рекурсивное удаление всегда чревато. Скажем, лишним пробелом в пути... Тем более ТС удаляет только один файл.
Все мы где-то, когда-то и в чем-то были новичками.