shell脚本
我们所输入的命令计算机是不识别的, 这时就需要一种程序帮助我们进行翻译,变成计算机所识别的二进制程序,同时又将计算机所执行的结果翻译给我们,
这个就是shell。
执行脚本的不同方式
第一种使用绝对路径
第二种使用相对路径 如./方式
第三种使用sh/bash命令来执行 格式:sh /路径(不需要执行权限)
shell的变量:
常见的shell变量有自定义变量,环境变量,位置变量,预定义变量
一般用echo 输出变量的值
1.自定义变量
是用户根据自己的环境自己定义的变量,bash中比较简单的变量,不用进行提前声明,而是直接指定变量名称并赋给初始值
定义变量的基本格式为变量名=变量值等号两遍不允许出现空格。$是引用变量的特殊字符,必须用$符号
如:定义一个变量Linux:Linux=7.2 echo $Linux 输出结果是7.2
注意:当变量名和后面的字符 容易 混淆的时候应该使用{}将变量括起来
如:echo {$linux}system
在linux中变量默认为字符串类型,例如:
如上所述,c为1+2,结果也是字符串类型。
1.declare 声明变量类型
declare [+/-] 选项 变量名
-:给变量设定类型属性 +:取消变量的类型属性
-i: 将变量声明为整数型 -x:将变量声明为环境变量 -p:查看变量声名的类型
如:将上述的c声明为-i,输出结果为3
2.expr或let数值运算工具
运算符与变量之间必须有一个空格位(用expr),整数 的运算主要是通过 内部命令expr命令进行运算,命令用$()括起来
3.$((运算符))或$[]
c=$(($a+$b));输出为300
shell中的运算符如下:
read命令:用来提示用户输入信息,从而实现简单的交互式过程,执行时需要从标准输入设备键盘读取一行,并以空格为分隔符
如:read dell hp 输入 1 2 echo $dell 最后输出 1 -p选项用来设置提示信息
数值变量的运算
shell 脚本的数值运算多用于脚本程序 的过程控制(如签王次数,使用量比较等)
在shell环境中,只能进行的整数运算,
格式 变量1 运算符 变量2
加法运算:+ 减法运算:-
乘法运算:\* 除法运算:/ 求模运算:%
保存运算结果:
2.特殊变量
1.环境变量:环境变量是指系统 本身运行需要由linux系统提前创建好的一类变量,主要用于用户的工作环境,环境蛮的值 由操作系统
本身自己维护 ,随着用户的状态改变而改变。
使用env命令来调取 当前环境变量,环境变量的配置文件在/ect/profile(全局)
$PATH :定义命令的默认搜索 路径(只有自己执行的命令在Path包括的目录下,才可以直接使用并使用tab补齐。如是不在path所包括的路径下只能
通过 绝对路径或相对路径使用。
例 :将我们写的脚本放在PATH默认的路径上:(但并没有永久的生效)
如果 想要永久的生效 :vim /etc/profile #所有用户都 生效 在最后追加,刚刚添加 进去的需要运行source /etc/profie
#只有root 用户生效 # vim /root /.bash_profile 在最后追加
2.位置变量
为了使用shell 脚本程序 是方便通过 命令行为程序 提供参数 Bash引用了位置变量的概念,当执行命令操作时第一个字段表示 命令字
或程序名,其余的字符串从左到右的顺序依次给位置变量赋值。
3.预定义变量
$#:命令行中 位置变量的个数 (程序执行了几个位置参数 )
$*:所有位置变量的内容
$?:上一条命令执行后返回的状态,当返回状态值 为0时表示 执行正常非0表示 执行异常或出错判断 是否出现 错误正常为0
导常错误为非0 取值在1-127之间
$0:当前执行的进程/进程 名
!$:表示 上一个命令的最后一个参数
sed 和 awk
sed编辑器是一行一行的处理文件内容的,正在处理的内容存放在模式空间内,处理完成后按照选项的规定进行输出 或文件