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的小白来学习,通过学习该专题会让你由入门达到中级 ...
随机推荐
- html中插入php的方法
.html文件是不可以被读取为php文件的必须修改后缀名为.php这个时候如果你在浏览器中调用此页面所有的HTML代码都会被正确显示 这个时候你可以在文件的任意为止插入<?php ?>作为 ...
- 【VBA】复制单元格数据有效性
单元格内设置了有效性,通过VBA怎么去复制呢?代码如下: Public Sub 复制单元格批注() Dim range1 As range Dim range2 As range '清除G列 Colu ...
- 《windows核心编程》 在应用程序中使用虚拟内存
Microsoft Windows 提供了以下三种机制来对内存进行操控: 虚拟内存 最适合用来管理大型对象数组或大型结构数组 内存映射文件 最适合用来管理大型数据流(通常是文件),以及在同一台机器上运 ...
- php 记录图片浏览次数次数
<?php $url='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; $la ...
- js正则表达式的分组提取
- samba基本配置
安装启动不用说了 vim /etc/samba/smb.conf workgroup = WORKGROUP server string = Samba Server %vnetbios name = ...
- PSSM特征-从生成到处理
以下代码均为个人原创,如有疑问,欢迎交流.新浪微博:拾毅者 本节内容: pssm生成 pssm简化 标准的pssm构建 滑动pssm生成 在基于蛋白质序列的相关预測中.使用PSSM打分矩阵会得将预測效 ...
- Android环境变量的设置(详细图解版)
分类: Android初学学习笔记2011-07-10 09:47 99479人阅读 评论(0) 收藏 举报 androidtoolspathcmd 查阅了网上很多的资料但是对于环境变量设置介绍的不够 ...
- centos7 中文输入法设置
安装centos7 后,他有自带的中文输入法安装包找到 applications->systemTools->settings->region&language 2:在 in ...
- UIview层次管理
将一个UIView显示在最前面只需要调用其父视图的 bringSubviewToFront()方法. 将一个UIView层推送到背后只需要调用其父视图的 sendSubviewToBack()方法.