я получаю эту ошибку, когда я запускаю мой Bash скрипт:синтаксиса: неожиданный конец файла
ошибка синтаксиса: неожиданный конец файла
Брус действительно найти, где ошибка, искали часов и по-прежнему получают эту ошибку.
Вот сценарий надеюсь, кто-то не могу указать меня в правильном направлении:
#!/bin/bash
BACKUPDIR=~/backup
SCRIPTDIR=~/respaldar
BACKUPFILE=/respaldo.$(date +%F).bz2
BACKUPHOST=199.21.112.70
COUNT=$(ls $BACKUPDIR | wc -l)
TRESHOLD=7
if [[ ! -e $BACKUPDIR ]]
then
echo "Creating Backup Directory because it doesn\'t exist !"
mkdir ~/backup
COUNT=0
# exit 0
else
COUNT=$(ls $BACKUPDIR | wc -l)
fi
if [[ $COUNT -le $THRESHOLD ]]
then
tar -cjvf $BACKUPDIR/$BACKUPFILE $SCRIPTDIR
if [[ $? -ne 0 ]]; then echo "Problems Creating Backup File;" fi
scp $BACKUPDIR/$BACKUPFILE $BACKUPHOST:
if [[ $? -ne 0 ]]; then echo "Problems Copying Backup File to Backup Host;" fi
fi
#END
Цените помощь.
', если [[$? -ne 0]]; затем echo «Проблемы с созданием резервного файла»; fi' должен иметь точку с запятой до 'fi'. – fedorqui
См. Http://www.shellcheck.net/ для автоматического средства тестирования. –
'COUNT = $ (ls $ BACKUPDIR | wc -l)' проклят глупо. 'files = (" $ backupdir "/ *); count = $ {# files [@]} 'имеет тот же эффект без всех накладных расходов на выполнение всех вызовов fork и exec, необходимых для появления' ls' в конвейере ... и не зависит от поведения, определенного реализацией of 'ls'. (вывод 'ls' должен гарантировать один вход в строку, но только тогда, когда он не будет на терминале, и в этом случае он определяется реализацией ... поэтому, если вы полагаетесь на то, что' ls' выглядит на если вы запустите его на свой экран, это может дать совсем другой выход, идущий к конвейеру!) –