1、cd
在shell中,内建(builtin)命令cd,格式以下:
cd [-L | -P] [dir]
cd命令用于改变当前工作目录,新的工作目录为dir,如果没有指定dir,则使用shell系统变量“HOME”的值,参数“-L”表示不跟踪符号链接,如果dir是1个符号链接的目录,结果便是dir本身,“-P”表示物理链接即跟踪符号链接,如果dir是1个符号链接的目录,结果则是dir指向的实际物理目录,默许为“-L”。履行成功时退出状态为0,否则为1。
在shell中,有几个特殊的目录,罗列以下:
~ 表示用户主目录
/ 表示根目录
- 表示最近1次的工作目录即系统变量“OLDPWD”的值
. 表示当前目录
.. 表示上1层目录即父目录
2、getopts
在shell中,内建(builtin)命令getopts,格式以下:
getopts optstring name [args]
getopts命令用于分析shell中的位置参数,比如说履行shell脚本的参数、shell函数的参数。
optstring包括待辨认的选项字符,选项字符不可以是冒号和问号,如果1个选项字符后面随着冒号,这个选项就要接受1个参数,参数与选项间以空格分隔。
每次履行getopts时,name保存了当前的选项字符,结束时name的值为1个问号,遇到了无效选项时也存储问号,如果有选项参数,则保存在了系统变量OPTARG中,下1个待处理的参数下标保存在了系统变量OPTIND中,OPTIND在当前shell启动或shell脚本履行时被设置为1,而后随着getopts的履行而变化,如果在同1个shell中需要重新履行getopts分析位置参数,就需要手动重置OPTIND的值了。getopts结束时,其退出状态大于0。
1般情况下,getopts会分析位置参数,但是如果args包括了更多的参数时,getopts就会分析args指定的参数了。
getopts毛病报告有两种方式,1种是optstring的第1个字符,如果为冒号,则不会报告毛病信息;另外一种是系统变量OPTERR,默许为1,如果设置为0,则不会报告毛病信息。只有当optstring的第1个字符不为冒号,且OPTERR不为0时,才会报告毛病信息。
下面是使用了getopts的1个例子:
$ cat test.sh
while getopts a:b name
do
echo "name: $name"
echo "OPTARG: $OPTARG"
echo "OPTIND: $OPTIND"
echo "----------"
done
echo "name: $name"
echo "OPTARG: $OPTARG"
echo "OPTIND: $OPTIND"
$ bash test.sh -a test -b
name: a
OPTARG: test
OPTIND: 3
----------
name: b
OPTARG:
OPTIND: 4
----------
name: ?
OPTARG:
OPTIND: 4
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。