Shell

一、shell概述

Shell 是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在shell中可以直接调用Linux系统命令。

二、脚本执行方式

1、方式一:赋予执行权限

chmod 755 文件名 # 给当前文件执行权限
./文件名 # 赋予755权限之后,./可执行脚本

2、方式二:通过bash调用执行脚本

bash 文件名

三、常用命令

一、输出命令
1、echo

echo [选项] [输出内容]
选项 
-e: 支持反斜线控制的字符转换

echo 后加双引号,即可在控制台输出要打印的内容

2、print:在每个输出之后自动加入一个换行符(Linux默认没有print命令)
3、printf:标准输出命令,并不会自动加入换行符,如果需要换行,需要手动增加\n。

printf '输出类型输出格式' 输出内容

输出类型

%ns: 输出字符串。n是数字,指输出几个字符
%ni: 输出整数。n是数字指代输出几个数字
%m.nf:输出浮点数。m和n是数字,指代输出的整数位数和小数位数。如%8.2代表共输出8位数

示例:

[root@rainbow ylxtest]# printf '%s %s %s %s\n' 1 2 3 4 5 6 7 8 9 10
1 2 3 4
5 6 7 8
9 10  

二、shell 脚本加颜色

30m:黑色;   31m:红色;   32m:绿色;  33m:黄色;
34m:蓝色;   35m:洋红;   36m:青色;  37m:白色;

格式:echo -e “\e[1;31m 要标红的内容 \e[0m”
eg:
echo -e “\e[1;31m POC目前建议仅对单产品部署(最低配置8C32G),组合产品资源情况需再评估!!! \e[0m”
在这里插入图片描述

命令汇总

序号控制字符作用
1\输出\本身
2\a输出警号音
3\b退格键,也就是向左删除键
4\c取消输出行末的换行符。和“-n”选项一致
5\eESCAPE键
6\f换页符
7\n换行符
8\r回车键
9\t制表符,也就是Tab键
10\v垂直制表符
11\0nnn按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数
12xhh按照十六进制ASCII码表输出字符,其中hh是两位十六进制数
13w显示当前用户登录信息以及过去1、5、15分钟的负载
14$0Shell的命令本身
15$0~$9表示Shell的第几个参数
16$?显示最后命令的执行情况
17$#传递到脚本的参数个数
18$$脚本运行的当前进程ID号
19$*以一个单字符串显示所有向脚本传递的参数
20$!后台运行的最后一个进程ID号
21$-显示Shell使用的当前选项

四、条件判断

1、按照文件类型进行判断

测试选项作用
-d 文件判断该文件是否存在,并且是否为目录文件(是目录为真)
-e 文件判断该文件是否存在(存在为真)
-f 文件判断该文件是否存在,并且是否为普通文件(是普通文件为真)
-b 文件判断该文件是否存在,并且是否为块设备文件(是块设备文件为真)
-c 文件判断该文件是否存在,并且是否为字符设备文件(是字符设备文件为真)
-L 文件判断该文件是否存在,并且是否为符号链接文件(是符号链接文件为真)
-p 文件判断该文件是否存在,并且是否为管道文件(是管道文件为真)
-s 文件判断该文件是否存在,并且是否为非空(非空为真)
-S 文件判断该文件是否存在,并且是否为套接字文件(是套接字文件为真)
  • 两种判断格式
(1)test -e 文件名
(2)[ -e 文件名 ]   # 注意:中括号前后一定要各添加一个空格
 echo $? #0:返回结果为真   1:返回结果为假

简化上面两行命令:

test -e /root && echo "yes" || echo "no"

实例1:文件夹不存在则创建

if [ ! -d "/data/test"];then
	mkdir -p /data/test   # -p 递归创建多个文件
else
	echo "文件夹已存在,执行其他的操作"
fi

2、两个文件之间进行比较

测试选项作用
文件1 -nt 文件2判断文件1的修改时间是否比文件2的新(如果新则为真)
文件1 -ot 文件2判断文件1的修改时间是否比文件2的旧(如果旧则为真)
文件1 -ef 文件2判断文件1是否和文件2的Inode号(-i)一致,可以理解为两个文件是否为同一个文件。常用场景:判断硬链接

3、两个整数之间比较

测试选项作用
整数1 -eq 整数2判断整数1是否和整数2相等(相等为真)
整数1 -ne 整数2判断整数1是否和整数2 不相等(不相等为真)
整数1 -gt 整数2判断整数1是否大于整数2(大于为真)
整数1 -lt 整数2判断整数1是否小于整数2(小于为真)
整数1 -ge 整数2判断整数1是否大于等于整数2(大于等于为真)
整数1 -le 整数2判断整数1是否小于等于整数2(小于等于为真)

4、字符串的判断

测试选项作用
-z判断字串是否为空(为空返回真)
-n判断字串是否为非空(非空返回真)
字串1 == 字串2判断字串1是否和字串2相等(相等返回真)
字串1 != 字串2判断字串1是否和字串2不相等(不相等返回真)

5、多重条件判断

测试选项作用
判断1 -a 判断2逻辑与,判断1和判断2都成立,最终的结果才为真
判断1 -o 判断2逻辑或,判断1和判断2有一个成立,最终的结果就为真
! 判断逻辑非,使原始的判断式取反
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值