(新人报道~!)有问题啦~!不是很明白~!shell 方面的 ~!
发表于 : 2009-03-18 3:35
正在学习shell方面的知识,
一直在看,但是还是难免会有很多东西不是很理解的透彻,所以不浪费时间,就弱弱的跑出来问问了~! 首先申明,我不是没有认真看阿,是我认真看了之后实在不明白这用法,所以 就那出来找高手帮忙指点迷经,各位高手多多包涵~!
看了 一个 关于 case的用法的,不明白上面说的那个东西怎么套用
case ... in
...) do something here ;;
esac
这个之后,给的例子就更不明白了,
1。首先用法里面 没说case后面跟的变量值确定的情况 怎么执行,
2 。然后那个莫名奇妙的半个括号是必须的么 ?为什么例题里面还要带星号?
3。do后面跟的是这些情况之外的东西还是说 case的变量在in后面的表达式中do后面的东西?
4。那个;; 什么情况下用阿, 什么意思 什么时候单,什么时候双阿?
那最后的esac是什么缩写阿,为了记忆 还是 问下 嘿嘿
#!/bin/sh
ftype=`file "$1"`
case "$ftype" in
"$1: Zip archive"*)
unzip "$1" ;;
"$1: gzip compressed"*)
gunzip "$1" ;;
"$1: bzip2 compressed"*)
bunzip2 "$1" ;;
*) echo "File $1 can not be uncompressed with smartzip";;
esac
努力学习~! 我会加油的~!
附加问题:在看select的用法,觉得挺好用的,但是有点不明白,select 中in后面的选项个数决定了我选择的范围,但是如果为选择了超出这个范围的选择,怎样让他显示错误然后提示重新选择呢
比如说
#!/bin/sh
echo "What is your favourite OS?"
select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do
break;
done
echo "You have selected $var"
有4个选项,分别对应了1-4,如果我选了5,后面就不会显示了,所以 希望知道 怎样用啦~!


看了 一个 关于 case的用法的,不明白上面说的那个东西怎么套用
case ... in
...) do something here ;;
esac
这个之后,给的例子就更不明白了,
1。首先用法里面 没说case后面跟的变量值确定的情况 怎么执行,
2 。然后那个莫名奇妙的半个括号是必须的么 ?为什么例题里面还要带星号?
3。do后面跟的是这些情况之外的东西还是说 case的变量在in后面的表达式中do后面的东西?
4。那个;; 什么情况下用阿, 什么意思 什么时候单,什么时候双阿?
那最后的esac是什么缩写阿,为了记忆 还是 问下 嘿嘿

#!/bin/sh
ftype=`file "$1"`
case "$ftype" in
"$1: Zip archive"*)
unzip "$1" ;;
"$1: gzip compressed"*)
gunzip "$1" ;;
"$1: bzip2 compressed"*)
bunzip2 "$1" ;;
*) echo "File $1 can not be uncompressed with smartzip";;
esac
努力学习~! 我会加油的~!

附加问题:在看select的用法,觉得挺好用的,但是有点不明白,select 中in后面的选项个数决定了我选择的范围,但是如果为选择了超出这个范围的选择,怎样让他显示错误然后提示重新选择呢
比如说
#!/bin/sh
echo "What is your favourite OS?"
select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do
break;
done
echo "You have selected $var"
有4个选项,分别对应了1-4,如果我选了5,后面就不会显示了,所以 希望知道 怎样用啦~!

