shell脚本简单总结

shell脚本
一个文件一旦拥有了X权限,就是一个程序,因此,脚本就是程序,以进程的方式运行在内存中
shell脚本的意义在于,通过命令行解析的方式,帮我们自动去执行设定好的命令代码。
假如把脚本挂到定时任务里,那就是自动在某个没有人的时间里自动触发程序。
shell脚本的构成
文件名
一般脚本文件的名字要以.sh结尾,代表shell的意思。用以区分脚本和普通文件
脚本声明
#!代表声明
脚本文件的第一行必须要写#!/bin/bash
#!/bin/env bash是用env查找器去找bash
utf-8是支持简体中文、utf-16支持繁体中文
coding:
注释信息
用来描述脚本的作用
脚本的执行内容
shell脚本的写法规范
脚本里的命令必须都是非交互的,或者说是在脚本的执行过程中不能出现交互式的画面,以免影响脚本的正常执行。
脚本文件一般放在/server/scripts里
如果需要写路径,要把路径赋给变量
exit退出后面要加返回码,在脚本最后写exit 0,执行结束后通过$?查看返回码,在开头写入错误返回码的注释
还要考虑可以执行脚本的用户
免交互创建账号
useradd 用户名
echo “密码内容” | passwd --stdin 用户名
变量
如果变量是字符串的情况下,想取变量的内容,后加字符进行拼接,要用大括号进行区分
echo {变量名}拼接的字符串
shell脚本的执行方式
sh或者bash后加脚本文件名执行
以脚本的相对路径执行,需要有X权限 ./脚本名
以脚本的绝对路径执行,但是脚本文件必须要有x执行权限
chmod u+x 文件或目录名 是只给属主位加x权限
chmod +x 文件或目录名 如果没有限定默认主组它都加x权限
限制允许执行脚本的用户
用whoami命令查看当前用户,来判断执行脚本的用户,以此来限制允许执行脚本的用户
test和 [ ] 脚本里的判断方法
test条件表达式
[ 条件表达式 ](常用,[]两边需要有空格)
每种判断都可通过echo $?进行成功与否的取值,0代表判断正确,非0代表判断错误
条件测试
-d 测试是否为目录
-f 测试是否为文件
-e 测试文件或目录是否存在
-r 测试当前用户是否可读
-w 测试当前用户是否可写
-x 测试当前用户是否可执行
-s 测试文件大小非0时为真(若不是空文件,则为真)
-u 测试是否具有SUID属性
-g 测试是否具有SGID属性
-k 测试是否具有stick bit粘滞位属性
-nt 测试第一个文件是否比第二个文件新
-ot 测试第一个文件是否比第二个文件旧
-ef 测试第一个文件是否与第二个文件为同一个文件(link链接之类的文件)
字符串测试
[字符串1 == 字符串2] 为字符串内容相同
[字符串1 !== 字符串2] 为字符串内容不相同
[ -z 字符串 ] 为字符串内容为空,或者变量的值为空,但是不能判断空格,空格也会被当成字符
求变量的位数(也可用于判断字符串是否为空)
echo ${#变量名} 输出为变量的字符位数
逻辑测试
-a:并且的意思
-o:或者的意思
!:逻辑否
&&逻辑与和||逻辑或的用法
&&是左边命令执行成功后(判断为0)才能执行右边的命令,否则右边不执行
||是左边命令执行失败后(判断非0)才能执行右边的命令,否则右边不执行
也可以两个同时写,左边命令执行成功就执行&&右边的命令,如果执行不成功就执行||右边的命令。
如果||后面还需要加&&则用()来实现,把右边的命令强行并成一个
read命令实现脚本的交互式输入
read 后加变量 ——进行交互式输入
read -p “文本提示” 变量 ——在进行交互式输入时屏幕输出文本提示的内容

整数测试参数
-gt(great than)是大于
-lt(less that)是小于
-eq是等于
-ge是大于等于
-le是小于等于
位置变量,参数传递的方式进行交互
执行脚本的时候,后面空格加上字符之后,就叫参数,脚本与参数,参数与参数之间都用空格分隔
$#:脚本要处理的参数的个数
$*:横向罗列所有参数
$@:单个参数的组合
$?:保存着命令或脚本执行状态码
$0:脚本执行时的路径,如果以相对路径执行就是相对路径,绝对路径执行,就是绝对路径
$1:脚本要处理的第一个参数
<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值