一、Shell概述
Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。 (Shell语言是一种解释形语言,即写完不需要编译就可以运行。) 学习Shell的目的是:编写脚本,有助于以后的开发 1.查看Linux系统中的shell解析器 其中 /bin/sh 和 /bin/bash 都是CentOs中的shell解析器 sh和bash的关系:两者本质上是同一个东西,sh是指向bash的一个软链接。
二、Shell脚本入门
1.创建并运行简单脚本文件,打印“hello world!”
#!/bin/bash
echo "hello world"
创建的 .sh
文件是没有执行权限的,可以通过bash和sh命令运行程序,或者通过chmod为文件增加可执行权限
三、变量
1.常用系统变量
$HOME, $PWD, $SHELL, $USER
2.自定义变量
定义变量:变量=值
撤销变量:unset
变量
声明静态变量:readonly 变量=值
注:静态变量不能unset
3.变量定义规则
变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。 等号两侧不能有空格。 在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。 变量的值如果有空格,需要使用双引号或单引号括起来。 把变量提升为全局环境变量,可供其他Shell程序使用 : export 变量名。 4.特殊变量
1,$n
功能描述:n为数字,$0
代表该脚本名称,$1-$9
代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10}
2,$#
功能描述:获取所有输入参数个数,常用于循环
3,$*、$@
$*
(功能描述:这个变量代表命令行中所有的参数,$*
把所有的参数看成一个整体)
$@
(功能描述:这个变量也代表命令行中所有的参数,不过$@
把每个参数区分对待)
注意:如果想让$*和$@
体现区别必须用双引号括起来才生效
4,$?
功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)
四、运算符
1.基本语法
"$((运算式))”或“$[运算式]"