shell编程之变量

变量分类

1.用户自定义变量
2.环境变量:主要保存的是和系统操作环境相关的数据。
   变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的。
3.位置参数变量:主要用来向脚本文件传递参数或数据。
   变量名不能自定义,作用也固定。
4.预定义变量

用户自定义变量

定义变量

变量名=变量值   (如:a=4      b="csdn")
注意:=等号两边不能有空格

变量叠加

x=123
x="$x"456
那么echo $x的值就是123456

删除变量

unset  变量名






环境变量

执行bash命令,即进入当前shell的子shell。执行pstree可查看进程树,即可看出两个shell的"父子关系"
环境变量在两个shell中都是生效的,但是任一个shell中定义的用户自定义变量都是只在该shell中有效。环境变量相当于全局变量,自定义变量相当于局部变量。

声明环境变量(全局变量)

export  变量名=变量值


Tips:set   #查看所有变量               env     #查看环境变量




位置参数变量

      参数变量: $n            

作用:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十及以上的参数需要使用大括号包含,如${10}

比如:执行命令      ./test.sh            5       7
(test.sh将作为$0传入到.sh文件中,5将作为$1传入到.sh文件中,7将作为$2传入)    
test.sh内容:
#!/bin/bash
num1=$1
num2=$2
sum=$(($num1+$num2))
echo $sum

那么脚本执行结果就为12。注意要将两个相加数求和,必须用$(())包括才行。



       参数变量:$*

作用:代表命令行中的所有参数,并把所有参数看成一个整体


       参数变量:$@

作用:代表命令行中的所有参数,不过区分每个参数


       参数变量:$#

作用:代表命令行中所有参数的个数


       参数变量:$*与$@的区别

        #!/bin/bash
        for i in "$*"
#$*中的所有参数被看成一个整体,所以循环只有一次
         do
echo   "Parameter is :$i"
                 done

for x in "$@"
#$@ 每个参数都被看成是独立的,所以$@中有几个参数就循环几次
  do
echo   "Parameter is :$x"
                 done
 





预定义变量

   变量$?

    作用:存储最后一个执行的命令的返回状态。若为0,则表明上一个命令正确执行;若非0(具体是多少,看错误是什么),则表明上一个命令执行不正确。

    

   变量$$

     作用:存储当前进程的PID

   变量$!

    作用:存储后台运行的最后一个进程的PID




接收键盘输入

命令格式:read  [选项] [变量名]

——选项     -p:  "提示信息",等read输入时,输出提示信息
         -t:   指定输入的等待时间
    -s:  隐藏输入的数据,适用于机密信息的输入
    -n:  字符数,read命令只接受指定字符数的参数就会执行


例子:     #!/bin/bash
     read  -p  "input your name :"  -t  30  name
     echo  $name
     echo -e "\n"                  #换行

     read  -p  "input your password:"  -s pwd
     echo  $pwd
     echo -e "\n"

     read -p  "input your sex[M/F]: "   -n 1  sex
     echo $sex





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值