Shell操作
一:Shell脚本文件的创建和使用
1:创建
命令:touch 脚本名字,sh
例子:touch jb.sh
注意点:(1)Shell脚本的后缀是sh
(2)脚本内第一行要加上一行代码:#!/bin/bash 意思是指定解析器
2:2种使用方法
(1)bash [脚本路径] 参数1 参数2...
(2)sh [脚本路径] 参数1 参数2....
例子:sh /root/jb.sh 1 2
注意:脚本文件默认是没有执行权限的,所以要在前面加上bash(sh是bash的软连接)解析器,让它来执行。如果赋予脚本执行权限的话,就不用加解析器了。
二:Shell里的变量
Linux里有许多系统变量,也可以自己增加变量
变量分为普通变量和静态变量 (1)普通变量:可以移除
(2)静态变量:不可以移除
1:查看指定变量
命令: echo $ 变量名字
例子:echo $HOME
2:查看全部变量
命令:set
3:新增变量
(1)新增普通变量
命令:变量=值
例子:a=1
(2)新增静态变量
命令:readonly 变量名字=值
例子:readonly a=1
定义变量细节:(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
(2)等号两侧不能有空格
(3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。
(4)变量的值如果有空格,需要使用双引号或单引号括起来。
4:移除变量
命令:unset 变量名字
例子:unset a
5:将变量提升成全局变量
命令:export 变量名
例子:export a
三:特殊变量
1:获取脚本名字或某个参数
命令:$n (n为数字,0表示脚本名字,1到9表示第一个到第9个参数,第10个以上的参数用{}括起来)
例子:$0 表示脚本名字
$1 表示第1个参数
${12} 表示第12个参数
2:获取所有输入参数的总数
命令:$#
3:获取所有参数
命令:$*或者$@
4:获取上次命令执行的状态,0为true,1为false
命令:$?
四:运算符
命令:$((运算式)) 或者$[运算式]
注意:运算符号左右要加空格
例子:给变量D赋值
五:条件判断
常用条件判断符号
(1)= 字符串比较
(2)-lt 小于
(3)-le 小于等于
(4)-eq 等于
(5)-gt 大于
(6)-ge 大于等于
(7)-ne 不等于
(8)-r 有读的权限
(9)-w 有写的权限
(10)-x 有执行的权限
(11)-f 是一个存在的文件
(12)是一个存在的文件或目录
(13)-d 是一个存在的目录
六:流程控制
1:if判断
例子:需求是传给脚本一个词组,脚本将词组翻译成英语输出
2:普通for循环
例子1:需求是输出从1加到100的总和
3:增强for循环
例子:循环输出所有参数
4:while循环
例子:从1加到100
七:read读取控制台输入
命令:read -t 10 -p "请输入" name (-t是时间,-p是提示,name是输入的值的变量名字)(-t和-p是选填)
例子:
八:函数
例子:输入2个数,输出他们的和