2014-02-26 65 views
4

我試圖創建一個bash文件,它將接受命令行參數,但我的OPTARG沒有產生任何結果,這看起來有必要得到這個工作?

以下是我有:

#!/bin/bash 

while getopts ":b" opt; do 
    case $opt in 
    b) 
     echo "result is: $OPTARG";; 
    \?) 
     echo "Invalid option: -$OPTARG" >&2;; 
    esac 
done 

當我運行以:file.sh -b TEST,這是結果我得到:result is:

任何想法是怎麼回事?

回答

9

您在bb之前不需要)後遺失冒號。

使用該腳本:

#!/bin/bash 

while getopts "b:" opt; do 
    case $opt in 
    b) 
     echo "result is: $OPTARG";; 
    *) 
     echo "Invalid option: -$OPTARG" >&2;; 
    esac 
done 
+0

謝謝!我直接抄襲了我使用的教程,因爲我直接複製了他們的代碼:)這解決了問題,我關閉並正在運行! –

相關問題