脚本基础
Linux系统中默认使用bash解释器解释文件
在脚本开头必须写声明,告知操作系统用什么解释器进行解释
在脚本的第一行,“#!”可以被读取
Python脚本默认后缀.py
Python脚本的语言输出默认是print(相当于echo)
#!解释器的绝对路径(#!/bin/bash)
Vim在文件中写入一行一行的命令,sh执行,脚本会按条执行并不显示交互界面
向脚本中加入逻辑,使脚本可以自行判断输入的命令
逻辑:
真逻辑
假逻辑
Shell脚本中
[]是判断符号
&&是逻辑与,左边的语句是真,右边的才会执行,左边的语句是假,右边的不执行
||逻辑或,左边的语句是假,右边的才会执行
逻辑整体如何判断(ech 111 && echo 222 || echo 333)
[ 1 == 1 ]分段参数和数据两边各有一个空格,否则无法识别
==表示判断
=表示赋值
在shell中判断大小:-gt(great tahn大于)
-eq 等于
-lt(less than 小于)
-ge 大于等于
-le 小于等于
-ne 不等于
脚本里可以接收参数 如:start stop
脚本的基本传输
$* $0 罗列所有参数 $#显示所有参数的数量
输入重定向:从外部输入命令
Cat << FOF 一行一行的输入信息,输入时遇到FOF时停止(可以设定任意字符)。常用来写脚本菜单
Cat > 文件绝对路径 << 结束符 输入信息到文件中,常用来生成配置文件
强行终止脚本:exit 在执行到这条命令时强制终止脚本,只显示之前的正确命令产生的结果、
[ $# -eq 3 ] && echo “right” && exit || echo “false”
#!/bin/bash
user=”Lassiter”
Passwd=”666666”
read -p “login” user
read -p “password” passwd
[ $User == $user ] && echo “loading” || echo “login false”
[ $Passwd == $passwd ] && echo “loading” || echo “can ont login”
逻辑与可以有很多,逻辑与后不能再加逻辑与
逻辑判断中的文件测试参数
-d参数:判断是不是目录
[ -d /service/scripts ] || mkdir -p /service/scripts
Cd /service/scripts
查看这个路径是不是只想一个目录,如果不过还是一个目录就递归创建,然后再cd进入
-e 测试文件或目录是否存在
-f 测试是否为文件
-r/w/x 判断文件是否有读/写/执行权限
-z判断某个字符串是不是空
If条件语句
If[条件]
Then 要执行的命令
Else此外
Elif出现除了上个条件之外的条件
Yum仓库自动挂载脚本
#!/bin/bash
umount /dev/sr0/
[ -d /media/cdrom ] || mkdir -p /media/cdrom
mount /dev/sr0 /media/cdrom
if [ $? -ne 0 ];then
echo "failed"
exit
fi
[ -d /etc/yum.repos.d ] || medir -p /etc/yum.repos.d
cd /etc/yum.repos.d
mv * /tmp
cat > /etc/yum.repos.d/local.repo <<111
[local]
name=local
baseurl=file:///media/cdrom
gpgcheck=0
enabled=1
111
yum -y clean all && echo "successed"
yum makecache && echo "WP"
echo "GG WP"