2010-09-29 77 views
0

我寫的,當你在爲一個圖像的文件名,則該程序預覽它,這可能需要多個參數(如下所示)參數類型其中SH程序試圖限制預覽圖像

#!/bin/sh 

for i in $*; do if [ ! -f "$i" ]; then  
echo "invalid file $i"  
else  
display -size 40x50 $i &  
fi  
done 

我將如何能夠將參數數量限制爲5?

請幫忙!由於

+0

與你的問題沒有直接關係:用'「$ @」'替換'$ *',用'「$ i」'替換$ i'。否則你的腳本將失敗,文件名包含空格或'\\ [?*'。 – Gilles 2010-09-29 18:57:43

回答

1

您可以檢查$#這是命令行參數數的計數的腳本,並確保它不超過5

你可以不喜歡它:

if [ $# -gt 5 ]; then 
     echo '>5 arguments given..exiting' 
     exit 1                 
fi 

# your existing script here. 
+0

那麼我怎麼會寫出來呢? – GuzzyD 2010-09-29 06:37:24

0
if [ $# -gt 5 ]; then 
    echo 'No more than 5 arguments are allowed' 
    exit 1 
fi