Bash

我的 bash 腳本有什麼問題?

  • November 24, 2018

我很難弄清楚我的腳本有什麼問題。

#!/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

最後一行的實際錯誤tar(我猜這是您的主要問題)是因為您沒有指定實際操作。f指定後面跟著一個文件名。說要詳細v地做某事。表示該z文件已壓縮(並且大多數版本tar都是多餘的)。

我猜你想要的動作是t- 列出文件。在這種情況下,您需要:

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

引用自:https://unix.stackexchange.com/questions/377608