2013-11-22 61 views
0

我想和選項 - 天目錄,我想在主目錄備份到選擇運行腳本一個選項參數

我有這樣的腳本:

#!/bin/bash- 

date_created="backup-`date +"%Y%m%d-%H%M"`"; 
backup_directory_name=$date_created; 
directory="backup/"; 

getopts d:t: option; 

case $option in 
    d) 
      directory=$1; 
    ;; 

    t) 
      backup_directory_name=$1; 
    ;; 
esac 

cd ~; 
tar cvpfz $backup_directory_name.tgz $directory; 

它將無法運行當我使用一個選擇,我得到以下錯誤:

焦油:您可能不指定多個-Acdtrux--test-label選項 嘗試tar --help' or焦油--usage」以獲取更多信息。

+2

最近沒有使用getopts的,但可以肯定$ 1只是整個腳本的第一個參數。您需要$ OPTARG或類似的東西來獲取參數的值,您可能還需要移動()參數。這裏都解釋了這裏:http://wiki.bash-hackers.org/howto/getopts_tutorial – SpliFF

+0

我已經找到了鏈接,但我無法得到它的工作:( – Rick

回答

1

你可能需要將它重新寫爲循環圍繞getopts()

while getopts "..." opt ; do 
    case $opt in 
    ... 
done 

shift $((OPTIND-1)) 
+0

不getopts自動移動選項索引?我googled周圍我發現矛盾的結果 – ffledgling

+0

如果您打算使用'$ @'和'$ *',則不行。 –

相關問題