赞
踩
Mon Jun 4 15:42:43 CST 2018
$? 函数返回值,或者上个命令的退出状态
1)$?用于判断上一个命令是否执行成功,如果成功为0。
返回值 含义"$@" :会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。
$* 将命令行所有参数视为单个字符串,等同于"$1$2$3"
$@ 将命令行每个参数视为单独的字符串,相当于"$1""$2""$3"。这种方式会保留所有内嵌在参数的任何白,都能传递给其它程序。
me
2.)“$*”$*加引号
[root@compute1 ~]# for i in "$*";do echo $i;done
who are your me
(8)变量取值
有4种方式:
1.$NAME
2.${NAME}
3.$"NAME"
4."${NAME}"
newdate=$(date +%F)
花括号取变量时如:tar zcf message_$newdate_http.tar.gz
此时shell产生歧义,将$newdate_http 整体看成了变量,所以这时要用大括号如:
将/var/log/下所有文件和目录打包
tar zcvf messages_${newdate}_log.tar.gz /var/log/
tar zcvf messages_`uname -n`_log.tar.gz /var/log/
(9)将命令定义为变量
1.用反引号:(10)例子详解
runlevel=$(set -- $(runlevel); eval "echo \$$#" )
1.)直接输入runlevel
N 3
得到2个参数,其中3就是当前运行级别
2.)set -- $(runlevel) 就是将runlevel运行的结果: N 3做为参数
3. )eval "echo \$$#" ,其中$#就是求出上面的参数的个数,刚才为2个,即$2取的值就是3
eval二次扫描,首先扫描到echo输出$2,第二次解析$2的值为等级3
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。