私のbashスクリプトには何の問題がありますか? [閉鎖]

私のbashスクリプトには何の問題がありますか? [閉鎖]

私のスクリプトにどのような問題があるのか​​を把握するのが困難です。

#!/bin/bash
echo "Good Day $USER"

if [ -f "$1" ]
then 
    tar -cvf home-10-07-2017.tar --files-from /dev/null
    echo "You are about to back up the following files… $*"
for i in "$@"
do
    if [ -f "$i" ]
    then
        PROCEED='YES'
    else
         PROCEED='NO'
    fi  

    if [ $PROCEED='YES' ]
    then
        tar -rvf home-10-07-2017.tar "$i"
    fi
done
        tar -vzf home-10-07-2017.tar.gz
else
      echo 'You did not enter any files to backup'
fi

スクリプトを実行すると、次のエラーが発生します。

./backups.sh first.txt second.txt 
Good Day fed
You are about to back up the following files… first.txt second.txt
first.txt
second.txt
tar: You must specify one of the '-Acdtrux', '--delete' or '--test-label'      options

ベストアンサー1

最後の行の実際のエラーtar(私の考えではこれが主な問題であるようです)は、実際に実行するアクションを指定していないためです。仕様fの後にはファイル名が続きます。v何をすべきかを詳しく教えてください。ファイルが圧縮されたことを示します(zほとんどのバージョンでtar重複)。

あなたが望むタスクはtファイルのリストです。この場合、以下が必要です。

tar -tvzf home-10-07-2017.tar.gz

おすすめ記事