一、Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义:
可以通过脚本测试来区分这几个变量的具体作用和用法.
脚本如下:
# vim variable #!/bin/sh echo "number:$#" echo "scname:$0" echo "first :$1" echo "second:$2" echo "argume:$@" echo "show parm list:$*" echo "show process id:$$" echo "show precomm stat: $?" :wq
赋予脚本执行权限
# chmod +x variable
执行脚本
# ./variable aa bb number:2 scname:./variable first:aa second:bb argume:aa bb show parm list:aa bb show process id:24544 show precomm stat:0
通过显示结果可以看到:
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
############################################################################
二.linux shell 之read -p 用法
shell下的read命令的作用是从标准流中读取输入,并把读取的内容放到某个变量中。
#!/bin/bash
echo -e "Please enter your test :"
read TESTREAD
echo $TESTREAD
##########################################
实例2
#!/bin/bash
mum=$1
mum=${mum:-3} #变量替换##当$mum的值大于或等于3后,就执行else后面的.
if [ $mum = "1" ];then
echo "测试环境 ..."
elif [ $mum = "2" ];then
echo "生产环境"
else
echo "请输入1或2,或单击enter键…"
fi
echo -e "\033[35m --------- 你输入的是数字$mum!!!$in \033[39;49;0m"
echo " press any key to continue " # 提示按任意键继续...
read key
三、SHELL学习笔记之循环语句之for和while
循环语句:for while
1.)for循环语句是在知道循环次数时使用.
2.)while循环语句是在不知道循环次数时使用,使变量增加1的操作可以写成"let,i++"或expr变量1运算符变量
for循环结构:
for 变量名 in 取值列表 do 命令序列 done
while循环结构:
while 条件测试命令 do 命令序列 done
for 循环实例:
[root@localhost source]# more for.sh #!/bin/bash for((i=1;i<10;i++)) do echo $i done 或着(两种方式执行的结果是一样的)。 #!/bin/bash for i in `seq 10` do echo $i done 执行结果: [root@localhost source]# sh for.sh 1 2 3 4 5 6 7 8 9 例2:for循环之创建用户脚本: #!/bin/bash for i in {1...10} do useradd studet$i echo password | passwd --stdin studet$i done
1 #!/bin/bash 2 for i in `rpm -qa |grep httpd|awk '{print $1}'` 3 do 4 5 /bin/echo $i 6 /bin/echo start .....uninstall... 7 rpm -e --nodeps $i 8 echo $i uninstall sucess... 9 done