2015-06-16 7 views
0

Я хочу проверить, пуст или нет .todo.txt. Если пусто, я хочу добавить эхо в файл, и если у него уже есть контент, я хочу сделать что-то еще.Файл сценария оболочки, если текстовый файл пуст или нет

Я пробовал:

hasData() 
{ 
    echo "Hello" 
} 

isEmpty() 
{ 
    echo -e "$n\t$comment\t$dueD/$dueM/$dueY " >> .todo.txt 
} 

if [ -s $file ] ; then 
    hasData() 
else 
    isEmpty() 
fi 

Когда я запускаю выше код, я получаю следующее:

./todo.sh: line 25: syntax error near unexpected token `else' 
./todo.sh: line 25: ` else' 

ответ

3

когда я запускаю мой код я получаю следующую ./todo.sh: линия 25: синтаксическая ошибка вблизи неожиданного токена else './todo.sh: строка 25: else'

Вы должны использовать круглые скобки t o определяют функцию оболочки, но они не имеют никакого отношения к ее вызову. Функция оболочки вызывается так же, как и любой другой команды:

if [ -s $file ] ; then 
    hasData 
else 
    isEmpty 
fi 

Если функции взяли аргументы, то вы бы перечислить их после имени функции - опять же, как и для любой другой команды.

+0

спасибо, ты лучший – Hazo

Смежные вопросы