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没有多行注释