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的小白来学习,通过学习该专题会让你由入门达到中级 ...
随机推荐
- springboot 有用网址收集
http://www.ityouknow.com/spring-boot.html springboot多数据源配置: https://blog.csdn.net/neosmith/article/d ...
- MVVM模式源码分析手写实现
1.demo1.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- icvEvalCARTHaarClassifier
/* *icvEvalCARTHaarClassifier *作用:通过计算haar特征值,来分配非叶子节点直到出现叶子节点,最后返回输出值val. */ float icvEvalCARTHaar ...
- firewalld那些事
FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具.它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项.它 ...
- PHP设置会话(Session)超时过期时间实现登录时间限制
最近某个PHP项目用到了限制登录时间的功能,比如用户登录系统60分钟后如果没有操作就自动退出,我搜索了网络收集了有以下方法可供参考. 第一种方法即设置php.ini配置文件,设置session.gc_ ...
- 莫小安 CentOS7使用firewalld打开关闭防火墙与端口
1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disab ...
- Android实现一键获取课程成绩dome
欢迎转载但请标明出处:http://blog.csdn.net/android_for_james/article/details/50984493 两周废寝忘食的创作最终成功了,如今拿出来分享一下. ...
- lua学习笔记(十)
模块与包 使用require加载模块 一个规范的模块应该返回一个table作为这个模块所有导出功能的集合 lua里没通过任何强制性语法规则要求创建模块时反回一个table ...
- gulp配置,实例演示
项目完成后的目录 我们所需要的插件为:gulp-minify-css gulp-concat gulp-uglify gulp-rename del 如下图所示,完成后的项目目录结构: 附加,获取pa ...
- 在freemarker文件中,html标签获取后台的值
1.<#assign a='3333' /> 2.<input type="text" id="name" name="name&q ...