shell的变量的学习

有的朋友一直在问我,到底怎么学习shell,学习shell有什么书籍可用,其实说白了,你想学好shell ,最好的资料就是官方文档,man bash要比市面上任何一本书要好。

很多人在学习的时候总是拼命的找一些书来看,却忘记了官方文档才是最好的学习资料,当然有人可以能是因为英语不过关,如果你是这个原因,建议你好好学习英语,这个很重要

1.变量的命名

  1)只能使用英文、数字和下划线,并且以英文和下划线开头。

  2)不能跟系统里已知的环境变量名重复

其实语言都是可以类比的,Python是不是也有这样的要求你可以想一下咯。

2.变量的赋值

     

赋值:

变量可以通过以下方式进行赋值:var=value

Var事变量名    value 是赋给变量的值。

[[email protected] ~]# x=3

[[email protected] ~]# echo $x

3

如果value不包含任何空白字符(例如空格),那么

 

这里需要注意一个常见的错误:

 

Var =value   不等同与var=value

3.特殊变量

      $#   参数的个数

      $n   传参的位置,如果是 $1 就是脚本传参的第一个值。

      $0   脚本名称

      $?   上一个命令执行状态返回值,0的话是正确 非0的话是报错。

Shell脚本实例:vim xinsz08.sh

  #!/bin/bash

  if [ $# -ne 2 ]

     then

         echo "$0 agre1 agre2"

         exit 1

  fi

  echo $1 $2

  echo $?

执行脚本 sh +x xinsz08.sh add 

输出结果为:

[[email protected] sh]# sh xinsz08.sh add

     xinsz8.sh agre1 agre2

上述结果中canshu.sh 对应canshu.sh中的$0 后面因为传参只有一个所以报错提示需要输入两个。

执行脚本 sh xinsz08.sh add edd

[[email protected] sh]# sh xinsz08.sh add edd

      add edd

      0

上述结果是正常的 add edd 对应 $1和$2

0对应的$?  说明脚本执行是正常的。

shell的变量的学习

4. 变量与‘引号

   a=123

   c=$a

   b=’245+$a’

   d=”245+$a”

  实例说明:vim test1.sh

   #!/bin/bash

     a=123

     c=$a

     b='234+$a'

     d="234+$a"

    echo "c=$c"

    echo "b=$b"

    echo "d=$d"

 执行脚本sh test1.sh  输出echo结果为:

    c=123

    b=234+$a

    d=234+123

  引号关系为:

  b='234+$a' 单引号是所见即所得

  d="234+$a" 双引号是使特殊符号生效如$a 变量生效

补充回顾:

Shell 有两类变量:临时变量和永久变量。

临时变量:是shell 程序内部定义的,其使用范围仅限于定义它的程序,对其它程序不可见。

永久变量是环境变量,其值不随shell 脚本的执行结束而消失。

关注微信公众号:xinsz08  这里有你想要的一切

shell的变量的学习