2015-07-04 145 views
2

我有以下任務:用簡單的bash腳本問題

寫一個程序,給定一個目錄作爲參數,使得用gzip和名稱壓縮的tar文件應在形式「dirNameYYYY-MM-DD名爲.tar.gz」。如果所述文件存在,則應該返回錯誤消息。

我試了一下:

#!/bin/bash 
dir=$1 
tarName=$dir`date '+%Y-%m-%d'`.tar.gz 
if [ -e $tarName] 
then 
echo "That file already exists." 
else 
tar -cvz $HOME/$tarName '/'$dir * 
fi 

這是爲什麼不工作?有關我如何修復它的任何建議?

+1

這個瘋狂的樣子功課,但無論:它不應該是'$ {DIR}/*'最後一行? – Jerska

回答

2

嘗試:

#!/bin/bash 
dir=$1 
tarName=$(basename $dir)$(date '+%Y-%m-%d').tar.gz 
if [ -e $tarName ] 
then 
    echo "That file already exists." 
else 
    tar -cvzf $tarName $dir 
fi 
+0

在']'前加一個空格。 –

+0

@Eugeniu:完美,謝謝。 –

+0

謝謝,這工作。 $(日期)與'\'日期\''做什麼? – YoTengoUnLCD