一:shell的bash内部命令变量介绍与shift等
1. bash内部变量
有些内部命令在目录列表时是看不见的,他们有shell本身提供,常用的内部命令有:echo,eval,exec,export,readonly,read,shift,wait,exit和(.)
- echo 变量名表
将变量名表指定的变量显示到标准输出。
- exalargs
读入参数args,并将他们组合成一个新的命令,然后执行
- exec命令参数
当shell执行到exec语句时,不会去创建新的子进程,而是转去执行指定的命令,当指定的命令执行完时,该进程(也就是最初的shell)就终止了,所以shell程序中exec后面的语句将不在被执行。
- exprot 变量名=value
shell可以用exprot把它的变量向下带入子shell,从而让子进程继承父进程中的环境变量。但子shell不能用exprot把它的变量向上带入父shell
- readonly 变量名
只读变量用readonly显示所有只读变量
- read 变量名表
从标准输入读字符串,传给指定变量
- shift 语句
shift语句安装如下方式重新命名所有的位置参数变量,即$2 成为$1,$3成$2 在程序中每使用一次shift语句,都使所有的位置参数依次向左移动一个位置,并使位置参数$#减1,直到减到0为止。
2. shift语句使用举例:、
[root@1-241 ~]# set -- "I am " handsome oldboy.
[root@1-241 ~]# echo $#
3
[root@1-241 ~]# echo $1 $2 $3
I am handsome oldboy.
[root@1-241 ~]# echo $1
I am
[root@1-241 ~]# echo $2
handsome
[root@1-241 ~]# echo $3
oldboy.
[root@1-241 ~]# shift
[root@1-241 ~]# echo $1
handsome
[root@1-241 ~]# echo $2
oldboy.
[root@1-241 ~]# echo $3 [root@1-241 ~]# shift
[root@1-241 ~]# echo $1
oldboy.
[root@1-241 ~]# echo $2