Linux基础系列:常用命令(8)_shell script
一、什么是shell script
将OS命令堆积到可执行的文件里,由上至下的顺序执行文本里的OS命令 就是脚本了.
再加上些智能(条件/流控)控制,就变成了智能化脚本了
二、变量命名规则
以字母或下划线开头,剩下的部分可以是:字母、数字、下划线.
遵循下述规范:
1.以字母开头
2.使用中划线或者下划线做单词的连接
3.同类型的用数字区分
4.对于文件最好加上拓展名
例如: sql_bak.tar.gz,log_bak.tar.bz2
定义变量名的边界
[root@MiWiFi-R3-srv ~]# rest_mem=
[root@MiWiFi-R3-srv ~]# echo ${rest_mem}%
%
(()) 比较
测试操作 []
# x=
# [ $x -gt ]
# echo $?
= :字符是否相等
!= :字符不相等
-eq :判断数字是否相等
-ne :判断数字不相等
-gt :判断一个数字大于另一个数字
-ge :判断一个数字大于等于另一个数字
-lt :判断一个数字小于另外一个数字
-le :判断一个数字小于等于另外一个数字
-b :文件存在并且是一个块设备文件
-d :文件存在并是一个目录文件
-e :文件存在
-f :文件存在,并且是一个普通文件
-a :与
-o :或
三、流程控制
if 循环 用户验证:
#!/bin/bash
read -p 'please input your name:' username
read -p 'please input your passwd:' passwd if [ $username = 'alex' -a $passwd = 'alex3417' ];then
echo 'login successful'
else
echo 'login err'
fi
猜年龄:
#!/bin/bash
age=
read -p 'please input oldboy age' oldboy_age
if [ $oldboy_age -gt $age ];then
echo 'too older'
elif [ $oldboy_age -lt $age ];then
echo 'too yanger'
else
echo 'congratulation!'
fi
while循环 验证文件类型
while :
do
read -p 'input you file: ' file
if [ -z $file ];then
continue
else
break
fi
done
if [ -b $file ]; then
echo "$file is block file"
elif [ -f $file ]; then
echo "$file is regular file"
elif [ -d $file ]; then
echo "$file is direvtory file"
else
echo '$file type unkown'
fi
while和if循环 猜年龄(2)
#!/bin/bash
age=
while :
do
read -p 'please input oldboy age:' oldboy_age
if [ -z $oldboy_age ];then
echo 'age is null'
continue
fi
if [ $oldboy_age -gt $age ];then
echo 'too older'
elif [ $oldboy_age -lt $age ];then
echo 'too yanger'
else
echo 'congratulation!'
break
fi
done
for 循环 输出奇数
#!/bin/bash
num=
for i in {..}
do
if ((i% == ));then
continue
fi
echo '======'$i
done
for循环 测试局域网有效ip
#!/bin/bash
for i in {..}
do
ping -c1 192.168..$i &> /dev/null #-c1 只ping一次; &> /dev/null 将无用信息写入空文件
if [ $? -eq ];then
echo "192.168.16.$i"
fi
done
while 、for、if嵌套循环 统计/dev下每种类型文件的数量:
#!/bin/bash
while :
do
read -p 'your dir:' dirname
if [ -z $dirname ];then
continue
else
break
fi
done
for i in $(ls $dirname)
do
if [ -h $dirname/$i ];then
((link_file+=))
elif [ -f $dirname/$i ];then
((putong_file+=))
elif [ -d $dirname/$i ];then
((dir_file+=))
fi
done
echo "pu tong wen jian shu:$putong_file"
echo "mu lu wen jian shu:$dir_file"
echo "lian jie wen jian shu:$link_file"
两层循环 输出九九乘法表
#!/bin/bash
for i in {..}
do
for ((j=;j<=i;j++))
do
echo -n "$i*$j= $[$i*$j] "
done
echo
done
登录验证完善版
#!/bin/bash
user='egon'
passwd=''
tag=true
while $tag
do
read -p 'please input your name:' username
read -p 'please input your passwd:' pas
if [[ $username = $user ]] && [[ $pas = $passwd ]];then
echo 'login successful'
while $tag
do
read -p '>> : ' cmd
if [[ $cmd = 'quit' ]];then
tag=false
else
$cmd
fi done
else
echo 'login err'
fi
done
Linux基础系列:常用命令(8)_shell script的更多相关文章
- Linux基础之常用命令整理(一)
Linux 操作系统的安装 如今比较流线的linux操作系统 Centos Redhat Fedora Ubuntu, 安装操作系统的提前是要有操作系统的镜像文件(.iso文件)并且必须为系统指定一 ...
- Linux基础、常用命令
Linux作为IT程序员必知必会知识,将自己学习到的和最近工作常用的一些命令进行总结,作为我结束过去生活和开始类程序员的序吧! 如果你想系统性学习的话,还是建议看书(鸟哥的Linux私房菜)或网上视频 ...
- Linux基础之常用命令篇
一.命令的基本格式 [root@localhost~] root为用户名 -表示当前所在位置 localhost主机名 ‘#’超级用户 '$" 普通用户 命令的基本格式: 命令 [选项] [ ...
- Linux基础之常用命令(1)
一 linux命令的格式 1.命令 [选项] [参数] ls list 显示目录下内容 ① 命令名称:ls 命令英文原意:list 命令所在路径:/bin/ls 执行权限:所有用户 功能 ...
- Linux 压缩系列常用命令
tar 命令: http://man.linuxde.net/tar zip 命令: http://man.linuxde.net/zip unzip 命令: http://man.linuxde.n ...
- Linux基础之常用命令整理(二)
Linux系统启动流程 bios(找到启动介质) --> mbr(找到boot loader 512B 446引导信息 64分区信息 2 标志位 ) -->grub(选择操作系统或者内核 ...
- Linux基础和常用命令
经常使用的命令: #查看端口被占用情况 netstat -tunlp|grep #查看java进程 ps -ef|grep java #压缩前端工程 rar a -ep1 ./update/win32 ...
- 【原创】Linux基础之常用命令
1 磁盘.cpu.内存相关 查看全部设备信息 # lspci 查看整体磁盘空间占用情况 # df -h 查看整体磁盘inode占用情况 # df -i 查看文件详细信息 # ls -l $path 查 ...
- linux基础知识-常用命令
ifconfig :查看当前ip hostname:查看主机名 vim /etc/hosts:修改地址映射 service iptables status : 查看防火墙状态 chkconfig ip ...
- 《Linux基础知识及命令》系列分享专栏
<Linux基础知识及命令>系列分享专栏 本专题详细为大家讲解了Linux入门基础知识,思路清晰,简单易懂.本专题非常适合刚刚学习Linux的小白来学习,通过学习该专题会让你由入门达到中级 ...
随机推荐
- Android错误之--Error retrieving parent for item: No resource found that matches the given name 'Theme.A
错误提示:error: Error retrieving parent for item: No resource found that matches the given name 'Theme.A ...
- PICT工具安装使用
前言:PICT工具在微软公司出品一款成对组合的命令行生成工具.PICT 可有效地按照两两测试Pairwise的原理,进行测试用例设计.在使用PICT时,需要输入与测试用例相关的所有参数,以达到全面覆盖 ...
- java清除所有微博短链接 Java问题通用解决代码
java实现微博短链接清除,利用正则,目前只支持微博短链接格式为"http://域名/字母或数字8位以内"的链接格式,现在基本通用 如果链接有多个,返回结果中会有多出的空格,请注意 ...
- 下拉刷新Listview(8.30)
Android-PullToRefresh 1项目托管地址: https://github.com/bavariama1/Android-PullToRefresh 2 快速开始教程:https:// ...
- C#CRC16 Modbus 效验算法
CRC校验(循环冗余校验)小知识 CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗 ...
- 清除掉AD的相关属性!
今天有朋友问我怎么清除掉AD 的相关属性,由于他们的用户都设置了登录到属性,这样我们的用户就仅仅能登陆他须要设置的计算机.对于兴许规则的变更的时候,我们的管理员配置起来就比較复杂.他须要非常长的时间去 ...
- NHibernate二级缓存(第十一篇)
NHibernate二级缓存(第十一篇) 一.NHibernate二级缓存简介 NHibernate由ISessionFactory创建,可以被所有的ISession共享. 注意NHibernate查 ...
- CSS div固定顶端
position: fixed;原来只需要这么一个设置就可以!
- 刷脸支付真的来啦!华为nova3带你玩转酷时代~
无论是不愿脱离手套的怕冷手. 或是沾满泥土芬芳的勤劳手. 还是挂着水滴的清洁手…… 每当这些时刻,打开支付宝认证支付, 指纹解锁的能力总是光彩尽失. 不过,就在华为nova 3的发布会上, 一项传说已 ...
- linux下LAMP环境搭建
++++++++++++++++++++++++++++++++++++++++++++++ linux下LAMP环境搭建 ++++++++++++++++++++++++++++++++++++++ ...