一、Shell 脚本命令的2种工作方式
交互式:输入一条(命令),执行一条
批处理:事先写好一个Shell脚本,一次性执行里面的所有命令
备注:Shell脚本不仅包含命令,还包含操作逻辑(if,for,while,case等)
二、编写简单的Shell脚本
格式
$ vim filename.sh
"""
#!/bin/bash
#[注释]
[命令1]
[命令2]
…………
"""
三、执行Shell脚本
1. 通过bash 解释器
$ bash filename.sh
2. 输入完整路径
. /filename.sh
提示权限不足时👇
chmod u+x ./filename.sh
四、接收用户参数
$0:Shell脚本文件名
$1、$2、$3……$n分别对应第1~n个位置的参数值
Shell脚本中的参数位置变量$#:总共的参数个数
$*:所有位置的参数值
$?:上一次命令的执行返回值(0为执行成功,2为出现error)
demo2.sh内容 demo2.sh执行结果五、判断用户参数
条件测试语句
格式👇
[ 条件测试表达式 ]
注: [ ]两边有空格
若条件成立返回数字 0,否则返回其他随机数值
1. 文件测试 (语句)
文件测试参数例:判读1.txt是否为目录
$ [ -d 1.txt ]
$ $?
是则输出0
不是则输出非0整数(如1)
2. 逻辑测试(语句)
&&:前面的执行成功,才执行后面的
||:前面的执行失败,才执行后面的
!:取反
例:判断1.txt是否存在
$ [ -e 1.txt ] && echo "exist 1.txt" || echo "not exist 1.txt"
存在则输出 exist 1.txt
不存在则输出 not exist 1.txt
3. 整数值比较(语句)
整数比较运算符例:判断1028是否大于1020
$ [ 1028 -gt 1020 ]
$ $?
输出:0
4. 字符串比较(语句)
字符串比较运算符例:判断当前语言环境变量是否为“zh_CN.UTF-8”
$ [ $LANG = 'zh_CN.UTF-8' ] && echo "yes" || echo "no"
输出:yes
备注:[ ]前后加空格!!!!!!
六、awk
逐行读入文件,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理
$awk '{pattern + action}' file
awk查看文件 awk查看可用内存
网友评论