bashã®getoptsã«ã¤ãã¦
bashã§ãããå¦çãæ¸ãéã«ä¾¿å©ãªã®ãgetopts
ä¾ãã°
batch.sh -f aaa.txt -d 20080829
ã£ã¦æãã§å¼æ°ãå¦çãããå ´å
#!/bin/bashOPTIONS="f:d:"
while getopts $OPTIONS opt $@
do
case $opt in
"f") filename=$OPTARG ;;
"d") date=$OPTARG ;;
*) exit -1;;
esac
done
ã£ã¦æãã§å¦çã§ãã
é¢æ°ã«å¼æ°ã渡ãå½¢ã§é åå ã«ããå¤ã«å¯¾ãã¦å¦çãè¡ããµã³ãã«ãä½ã£ã¦ã¿ã
test1.sh
#!/bin/bashOPTIONS="f:i:"
aryItems=(a.txt b.jpg c.pdf)
aryItemCD=(100 200 300)main() {
unset filename
unset image_cd
while getopts $OPTIONS opt $@
do
case $opt in
"f") filename=$OPTARG ;;
"i") image_cd=$OPTARG ;;
*) exit -1;;
esac
doneecho "filename:$filename"
echo "image_cd:$image_cd"if [ $filename ]; then
if [ $image_cd -ne 0 ]; then
return 0
else
echo "ERROR $OPTERR [ image_cd:$image_cd ]" 1>&2
return -1
fi
else
echo "ERROR $OPTERR [ file:$filename image:$image_cd ]" 1>&2
return -1
fi
}echo "count:["${#aryItems[*]}"]"
j=0
cnt=0
for i in ${aryItems[*]}
do
j=${aryItemCD[$cnt]}
let cnt=$cnt+1
echo "+------------------------------------------------------------+"
echo "LOOP : $cnt ARGV : -f $i -i $j"
main -f $i -i $j
sleep 1
doneexit 0;
aryItemså ã«ãããã¡ã¤ã«åãã«ã¼ããã¦mainé¢æ°ã«æ¸¡ãå¦çãã
å®è¡
count:[3]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
LOOP : 1 ARGV : -f a.txt -i 100
filename:a.txt
image_cd:100
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
LOOP : 2 ARGV : -f b.jpg -i 200
filename:
image_cd:
ERROR 1 [ file: image: ]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
LOOP : 3 ARGV : -f c.pdf -i 300
filename:
image_cd:
ERROR 1 [ file: image: ]
ããï¼
ï¼åç®ä»¥éããã¡ã ï¼
mainé¢æ°å ã®getoptsãã¦ãã«ã¼ãã§shiftãã¦ã¿ã
count:[3]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
LOOP : 1 ARGV : -f a.txt -i 100
filename:a.txt
image_cd:
./test1.sh: line 25: [: -ne: unary operator expected
ERROR 1 [ image_cd: ]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
LOOP : 2 ARGV : -f b.jpg -i 200
filename:
image_cd:200
ERROR 1 [ file: image:200 ]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
LOOP : 3 ARGV : -f c.pdf -i 300
filename:
image_cd:
ERROR 1 [ file: image: ]
ãããããã£ãï¼åç®ã®ã«ã¼ãã®å¤ã«shiftãã¦ãã®ã
mainé¢æ°ã¨OPTIONS="f:i:"ãå¤é¨ãã¡ã¤ã«ã«ãã¦ã¿ã
test2.sh
#!/bin/basharyItems=(a.txt b.jpg c.pdf)
aryItemCD=(100 200 300)echo "count:["${#aryItems[*]}"]"
j=0
cnt=0
for i in ${aryItems[*]}
do
j=${aryItemCD[$cnt]}
let cnt=$cnt+1
echo "+------------------------------------------------------------+"
echo "LOOP : $cnt ARGV : -f $i -i $j"
./main.sh -f $i -i $j
sleep 1
doneexit 0;
main.sh
#!/bin/bashOPTIONS="f:i:"
main() {
unset filename
unset image_cd
while getopts $OPTIONS opt $@
do
case $opt in
"f") filename=$OPTARG ;;
"i") image_cd=$OPTARG ;;
*) exit -1;;
esac
doneecho "filename:$filename"
echo "image_cd:$image_cd"if [ $filename ]; then
if [ $image_cd -ne 0 ]; then
return 0
else
echo "ERROR $OPTERR [ image_cd:$image_cd ]" 1>&2
return -1
fi
else
echo "ERROR $OPTERR [ file:$filename image:$image_cd ]" 1>&2
return -1
fi
}main $@
exit 0
ã§ãå®è¡
shell> ./test2.sh
count:[3]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
LOOP : 1 ARGV : -f a.txt -i 100
filename:a.txt
image_cd:100
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
LOOP : 2 ARGV : -f b.jpg -i 200
filename:b.jpg
image_cd:200
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
LOOP : 3 ARGV : -f c.pdf -i 300
filename:c.pdf
image_cd:300
ããï¼ï¼ãã¾ããã£ãï¼ï¼ï¼
å é¨ã«å®ç¾©ããé¢æ°ã ã¨ãªãã§ãã¡ãªãã ã
ããããåããã
æéããã¨ãã«èª¿ã¹ã