【发布时间】:2013-06-18 20:29:51
【问题描述】:
这是脚本:
file=$1
while getopts ":ivr" opt; do
case $opt in
i) iopt=1;;
v) vopt=1;;
r) ropt=1;;
\?)echo "invalid option: -$OPTARG" >
esac
done
shift $(($OPTIND-1))
所以我真正理解的唯一部分是转变$(($OPTIND-1))。有人可以解释其余的实际在做什么吗?顶部的file=$1 是什么意思?这是否意味着“文件”一词现在已分配给$1 列的值?
“$1 列”是指当一个命令运行时,$0 分配给命令的实际名称,$1 是第二个选项/参数,$2是给出的第三个选项/参数。例如,如果您键入:
rm -r directory/randomfiles
那么 $0 将是 rm。 -r 将是 $1。和directory/randomfiles 将是$2。这有意义吗?
总结一下:
- 顶部的
file=$1是什么意思,有什么意义? -
$opt代表什么,它是什么意思? -
iopt=1是什么意思,有什么意义? - 如果我想像这样使用我的脚本:
MyScriptName -r [InsertFilenameHere]我该怎么办?
我知道我在问很多问题 - 如果您能回答我的一些问题,或者指出正确的方向,我将不胜感激!
提前致谢。
【问题讨论】:
-
+1 用于指定简单的英语部分,否则有人会使用 POSIX 说话:)
标签: bash unix scripting sh getopts