сценарий удара для резервного копирования каталога

Я пишу сценарий для резервного копирования каталога пользователя и для определенного количества дней. Я являюсь новым для избиения так фиксации, могло быть очень простым, но я не вижу его. Когда я выполняю его возврат"syntax error near unexpected token ')'"

#
#!/bin/bash
SCRDIR = ${1? Error: No directory given}
DATE =5
echo "Backing up $SCRDIR for $DATE days"

TODAY = "$(date +%Y_%m_%d)"
FILENAME = $SCRDIR"_"$TODAY".tar"
tar -cvfz $FILENAME $SCRDIR
find $PWD -mtime +$DATE -type f -delete
echo "Done"
#
0
задан 4 February 2020 в 02:34

1 ответ

Так много неправильно, что я должен был использовать shellcheck:

walt@bat:~(1)$ cat >foo.sh
#!/bin/bash
SCRDIR = ${1? Error: No directory given}
DATE =5
echo "Backing up $SCRDIR for $DATE days"

TODAY = "$(date +%Y_%m_%d)"
FILENAME = $SCRDIR"_"$TODAY".tar"
tar -cvfz $FILENAME $SCRDIR
find $PWD -mtime +$DATE -type f -delete
echo "Done"
walt@bat:~(0)$ shellcheck foo.sh

In foo.sh line 2:
SCRDIR = ${1? Error: No directory given}
       ^-- SC1068: Don't put spaces around the = in assignments.


In foo.sh line 3:
DATE =5
     ^-- SC1068: Don't put spaces around the = in assignments.


In foo.sh line 6:
TODAY = "$(date +%Y_%m_%d)"
      ^-- SC1068: Don't put spaces around the = in assignments.


In foo.sh line 7:
FILENAME = $SCRDIR"_"$TODAY".tar"
         ^-- SC1068: Don't put spaces around the = in assignments.
                     ^-- SC2027: The surrounding quotes actually unquote this. Remove or escape them.


In foo.sh line 8:
tar -cvfz $FILENAME $SCRDIR
          ^-- SC2086: Double quote to prevent globbing and word splitting.
                    ^-- SC2086: Double quote to prevent globbing and word splitting.


In foo.sh line 9:
find $PWD -mtime +$DATE -type f -delete
     ^-- SC2086: Double quote to prevent globbing and word splitting.
0
ответ дан 20 February 2020 в 23:01

Другие вопросы по тегам:

Похожие вопросы: