linux就该这么学 第五课

shell脚本分为批处理式的和交互式的

shell脚本有三部分组成
1、脚本声明 #! /bin/bash
2、脚本的注释 #对功能和参数的解释
3、脚本的命令

例如: vim /haha.sh 注意:脚本以.sh结尾 注释信息可以写也可以不写,也可以写多行
#! /bin/bash
# ls pwd
pwd
ls - l

执行的时候可以用 /haha.sh 需要对文件有执行权限 也可以 bash haha.sh

1、接收参数的能力
2、有判断的功能
vim haha.sh
#!/bin/bash
echo "$0" $0 脚本的名称
echo “$# ,$*” $#表示 一共几个变量 $*表示分别是什么
echo "$1 ,$3 ,$5" 显示第一个,第三个,第五个参数

bash haha.sh a b c d e f

haha.sh
6, a b c d e f
a,e,e

文件判断 逻辑判断 整数判断 字符串判断
文件判断
[ -f /etc/fstab] 判断fstab是否存在的并且是否是文件 []两边要有空格
echo $? 显示上一次的结果 0表示成立 1表示不成立
[ -d /dev ] 判断dev是否是个目录,是否存在

逻辑操作符 && 逻辑和或逻辑与 ,若前面语句执行成功则执行后面的语句
例如 [ -d /etc ] && echo “OK” 如果etc存在并是目录 那么输出OK,否则什么都不输出
|| 逻辑或 若前面语句执行失败,则执行后面的语句
例如 [ $USER = root ] && echo “admin” || echo “user”
若变量USER是root则输出admin否则说出user
! 逻辑非 取反 [ !$USER = root ] 判断变量USER是否不是root

-z 判断字符串内容是否为空
[ -z $HAHA ] 判断HAHA变量是否是空值 ,0为变量不存在,1为变量已经存在了,赋值变量前检查变量是否存在
数字比较符号
- gt 大于 -eq 等于 - lt 小于 -le 小于等于 -ge 大于等于 -ne 不等于
例如 查看内存是否小于1g
free -m |grep Mem:| awk ‘{print $4}‘ 提取剩余内存值
[ `free -m | grep Mem:| awk ‘{print $4}‘` - lt 1024 ] && echo “buzu” || echo “chongzu”
当前的使用内存是否小于1024 如果小于 输出buzu 否则 输出chongzu
free -m 显示以兆为单位内存
搜索Mem:的行
从行中提取出第四列awk ‘{print $4}

单分支条件语句 只有一次判断机会
if条件测试语句 -e 表示是否存在,不论文件或者文件
#! /bin/bash
if [ !-e /media/haha]
then
mkdir /media/haha then 后面可以跟多条命令
fi
双分支条件语句 可以有两次判断机会
#!/bin/bash
ping -c 3 -i 0.2 -w 3 $1 &> /dev/null -c 次数 -i 间隔时间 -w 超时时间
if [ $? -eq 0]
then
echo“HOST $1 is On-line”
else
echo "Host $1 is Off-line"
fi
bash haha.sh 192.168.10.10

多重分支条件语句
#!/bin/bash
read -p "Enter :" GRADE elif可以使用多次
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ;then
echo “henhao”
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ]
echo "Pass"
else
echo “Failure”
fi

for循环语句
vim /user.txt
zhangsan
lisi
wangwu
zhaosi
#! /bin/bash
read -p “Enter” PASSWD
for UNAME `cat users.txt`
do RHCE中会考FOR语句
id $UNAME &>/dev/null
if [ $? -eq 0 ]
then
echo "cunzai"
else
useradd $UNAME &> /dev/null
echo “$PASSWD”| passwd --stdin $UNAME &>/dev/null
fi
done
说明:在脚本中还可以加if条件语句,比如如果新建用户成功输出指定信息,不成功输出指定信息

测试一个文本中的IP地址是否在线
vim /ip.txt
192.168.10.10
192.168.10.20
192.168.10.30

vim /haha.sh
#! /bin/bash
for IP in `cat ip.txt`
do
ping -c 3 -i 0.2 -W 3 &>/dev/null
if [ $? -eq 0 ]
then
echo "$IP is On-line"
else
echo "$IP is Off-line"
fi
done

原文地址:https://www.cnblogs.com/Bluejun/p/12348679.html

时间: 2024-10-01 10:29:43

linux就该这么学 第五课的相关文章

linux就该这么学第五课

linux就该这么学第五课 vim编辑器 命令模式 复制:yy 剪切删除:dd u:撤销上一步的操作 p:将之前操作的步骤返回 n/N:搜索下一个字符串/搜索上一个字符串 输入模式 直接输入即可,跟记事本一样 末行模式 :w保存 :q退出 q!:强制退出 :命令 直接执行相应命令 :整数 跳转到该行 输入模式无法直接进入末行模式,反之一样,都需要通过命令模式进入输入模式或者末行模式 编辑脚本 固定格式: #! /bin/bash #注释 相应命令 接受用户参数 $0:shell脚本的名称 $#:

Linux就应该这么学第六课

Linux就应该这么学第六课 for条件循环语句 格式: for 变量名 in 取值来源 do 命令序列 done while条件循环语句 格式: while 条件测试操作 do 命令序列 done case条件测试语句 case 变量值 in 模式 1) 命令序列1 ;; 模式 2) 命令序列2 ;; 模式 3) 命令序列3 ;; *) 默认命令序列 esac 计划任务服务程序 at命令 at +时间 按ctrl+d组合键来结束编写计划任务 at -l 查看任务列表 at -c 序号 查看任务

linux就该这么学第十一课

linux就该这么学第十一课 网络配置的四种方式: 1.vim /etc/sysconfig/network-scripts/ifcfg-eno 2.nmtui 图形化配置 3.nm-connection-editor图形化配置 4.右上角的图形化网络图标设置 RHEL7:nmtui RHEL5/6:setup 网络会话 查看网络 nmcli connection show 创建网络会话 nmcli connection add con-name company ifname eno167777

linux就该这么学第八课

第5章 用户身份与文件权限. Linux系统技术交流QQ群(463590)验证问题答案:刘遄Linux就该这么学 <Linux就该这么学>最新正式版已出版上市,同学们可在线上京东网.当当网.淘宝网及亚马逊等电商平台购买. 亦可就近在新华书店购买 章节简述: Linux是一个多用户.多任务的操作系统,具有很好的稳定性与安全性,在幕后保障Linux系统安全的则是一系列复杂的配置工作.本章将详细讲解文件的所有者.所属组以及其他人可对文件进行的读(r).写(w).执行(x)等操作,以及如何在Linux

2019年5月26日-linux就该这么学-第11课

第9章 使用 ssh服务管理远程主机 9.1 配置网络服务9.1.1 配置网络参数--nmtui(1) 网卡配置文件中 ONBOOT yes,这样在系统重启后网卡就被激活了.(2) 手动重启服务:systemctl restart network:9.1.2 创建网络会话--网络会话功能允许用户在多个配置文件中快速切换.nmcli--基于命令行的网络配置工具,用于管理NetworkManager服务.(1) 查看网络连接情况:nmcli connection show:(2) 配置company

linux就该这么学-第二节课

#学linux咋学,要不然买台物理服务器,自己装系统有点麻烦,听说云服务器也不错,直接来的系统,但是要钱啊,算了老老实实用vmware吧. VMware WorkStation虚拟机软件是一款桌面计算机虚拟软件,让用户能够在单一主机上同时运行多个不同的操作系统.类似的还有xenserver啥的,以后工作有需要就接触到的. 装VMware的过程中就不再叙述了. 用VMware安装系统注意事项: 建议将虚拟机系统内存的可用量设置为2GB,最低不应低于1GB.如果自己的真机设备具有很强的性能,那么也建

Linux就该这么学 - 第3课

2018-9.9第三课在开班仪式和安装软件完毕之后,我们正式进入学习!平时也会安装一些软件,但是不是傻瓜似的安装,自己总会很怕,怕一不小心就出错,怕安装不了正式上课前,跟着刘遄老师的教材已经安装过一遍了,安装好之后长舒一口气~ 这一次,基本不看教程,安装顺利! 各种命令记起来!用起来! 突然发现,以前的理科文盲,也能看得懂计算机的东西了,还是一个女生.瞬间崇拜自己~ 希望继续努力,好好学习,好好练习,好好复习,fighting! 原文地址:http://blog.51cto.com/139609

2019年5月4日-linux就该这么学-第2课

![ ](https://s1.51cto.com/images/blog/201905/05/ec43abff4e17a800d89bb6c9639ada7f.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)![](https://s1.51cto.com/images/blo

2019年5月10日-linux就该这么学-第4课

第3章 重定向.管道符.通配符.转义字符.环境变量 3.1 输入输出重定向概念:输入重定向是指将文件导入到命令中:输出重定向是指将原本输出到屏幕的信息输出到文件中. 输入重定向:(STDIN ,文件描述符为0),默认从键盘中输入,也可从其他文件或命令输入. 1. 命令<文件:将文件作为命令的标准输入: 2. 命令<<分界符:从标准输入中读入,直到遇见分界符才停止: 3. 命令<文件1>文件2:从文件1作为命令的标准输入,并将标准输出到文件2: ----- 输出重定向:标准输出