shell脚本学习(一)

shell脚本(shell script),是一种为shell编写的脚本程序.

Shell编程只需要有一个文本编辑器和一个能够解释执行的解释器即可.

我现在学习的是Bourne Agine Shell,即Bash,也是大多数Linux默认的shell.

一般情况下人们不区分Bourne Shell和Bourne Agine Shell,像#!/bin/sh  和 #!/bin/bash.

一:第一个shell脚本

像学习大多数编程一样,从Hello World开始

打开vi编辑器,新建一个test.sh,扩展名可以自己定,主要方便记忆,输入下面代码

#!/bin/sh

echo "Hello World"

其中#!是一种约定标记,它告诉系统后面跟的路径指向的程序,即解释此脚本的解释器

执行shell脚本:

执行shell脚本,需要用户有执行的权限,所以要先更给下权限

方法一: ./test.sh 其中./不能省去不能直接写test.sh

方法二: /bin/sh test.sh 这种方式执行可以在编写test.sh时不写#!/bin.sh

执行结果会输出 Hello world

二: shell变量

shell变量的定义,如 my_name="cat_crazy"

注意:1)定义变量的时候=号两侧不能有空格

  2)变量名必须要以字母开头,大写或小写

  3)中间不能有空格,可以有下划线

  4)不能使用标点符号

  5)不能使用Bash保存的关键字

使用变量: 在变量名前加$即可

  my_name="cat_crzay"

  echo $my_name

  echo ${my_name}

  其中{}是可选的,只是为了使程序更好的识别变量的边界

  变量的赋值是不能加$符号,只有使用的时候才能加$,即$my_name="cat"这样做会报错

只读变量 :这个变量一旦声明为只读变量,那么就不能再此赋值

  例如 my_name="cat_crazy"

    readonly my_name

    my_name="cat"

  这样做程序会报错,this variable is read only

删除变量 : 使用unset后跟变量名删除, 例如unset my_name

shell字符串

  定义一个字符串可以使用单引号也可使用双引号还可以不写,单双引号区别和php类似.

  双引号的优点:1)双引号里可以有变量;2)双引号中可以使用转义字符

shell数组(只支持一维数组)

  定义一个数组

  1) array_name=(1 2 3 4 ) 数组的值之间使用空格隔开

  2) array_name[0]=1

   array_name[1]=2

   注:下标可以不连续,但是必须要有,(最好使用整数作为下标,否则情况不知道怎么解释)

shell注释

  shell注释就是在行首加#,shell没有多行注释

原文地址:https://www.cnblogs.com/catcrazy/p/6291339.html