Попытка создать архив tar в скрипте bash linux

#bash

Вопрос:

Я пытаюсь создать сценарий bash, в котором вы вводите файлы/каталоги, но каждый раз, когда я добираюсь до последней части, он продолжает говорить-> tar: Трусливо отказывается создавать пустой архив. Вот мой сценарий. Скрипт работает до тех пор, пока он не спросит, следует ли сжимать эти файлы

 #!/bin/bash

echo  "enter some files/directorys to be backed up:"

read $*

if [ -f $* -o -d $* ]
then
        echo $* its a valid file/directory

        echo "Where/which folder is the file stored??"
        read location

        if [ -d $location ]
        then
                echo "Its a valid location"
        fi

        echo "Should these files be compressed? (Y/N)"

        read ans

        if [ $ans = Y -o $ans = y ]
        then 
                sudo tar -czvf $*.tar.gz $*
                echo "success" 

        elif [ $ans = N -o $ans = n ]
        then
                sudo tar -cvf $*.tar $*
        fi
else
        echo $* invalid
fi
 

Комментарии:

1. Строка, начинающаяся с #!/bin/bash, и строка, заканчивающаяся на else echo $* недопустимый fi, является частью сценария

2. Как ты думаешь read $* , что делает?

3. Кроме того, -f и -d не работайте с несколькими аргументами. Они проверяют, существует ли ровно одно имя файла или каталога. ( -o вообще не рекомендуется; используйте [ -f ... ] || [ -d ... ] вместо этого.

4. $* это список из нескольких аргументов; вы не должны использовать его, если он гарантированно будет одним аргументом. Используйте $1 для этого.

5. И, наконец, запустите свой сценарий через shellcheck. проверьте и исправьте любые рекомендации, сделанные там, прежде чем задавать свой вопрос.