十二.shell编程之条件判断与流程控制
2016-04-26 18:10
579 查看
shell编程之条件判断与流程控制
流程控制语句:
*条件判断式
*单分支if语句
*双分支if语句
*多分支if语句
*case语句
*for循环
*while循环和until循环
第一章 条件判断式语句
1.1概述:即该程序根据给定的条件来判断是否存在
1.2按文件类型判断
测试选项 作用
-d 文件 判断该文件是否存在,并且是否为目录文件(是目录为真)
-e 文件 判断该文件是否存在(存在为真)
-f 文件 判断该文件是否存在,并且是否为普通文件(是普通文件为真)
**两种判断格式
*test -e 文件路径(或文件名)
*[ -e 文件路径(或文件名)] 推荐用这个
eg:[ -e /root/install.log ]
echo $?
或
[ -e /root/install.log ] && echo yes || echo no
1.3按文件权限判断
测试选项 作用
-r文件 判断该文件是否存在,并且是否该文件拥有读权限(有读权限为真)
-w文件 判断该文件是否存在,并且是否该文件拥有写权限(有写权限为真)
-x文件 判断该文件是否存在,并且是否该文件拥有执行权限(有执行权限为真)
1.4两个文件之间的比较
测试选项作用
文件1 -nt 文件2
判断文件1的修改时间是否比文件2的新(如果新则为真)
文件1 -ot 文件2
判断文件1的修改时间是否比文件2的旧(如果旧则为真)
文件1 -ef 文件2
判断文件1与文件2的inode号是否一致,可以理解为两个文件是否一样。这个方法
是用于判断硬链接的最好方法
1.5两个整数之间的比较
测试选项 作用
整数1 -eq 整数2
判断整数1是否和整数2相等(相等为真)
整数1 -ne 整数2
判断整数1是否和整数2不相等(不相等为真)
整数1 -gt 整数2
判断整数1是否大于整数2(大于为真)
整数1 -lt 整数2
判断整数1是否小于整数2(小于为真)
整数1 -ge 整数2
判断整数1是否大于等于整数2(大于等于为真)
整数1 -le 整数2
判断整数1是否小于等于整数2(小于等于为真)
1.6字符串的判断
测试选项 作用
-z 字符串
判断字符串是否为空(为空返回真)
-n 字符串
判断字符串是否为非空(非空返回真)
字符串1 == 字符串2
判断字符串1是否和字符串2相等(相等返回真)
字符串1 != 字符串2
判断字符串1是否和字符串2不相等(不相等返回真)
1.7多重条件判断
测试选项 作用
判断1 -a 判断2 逻辑与,判断1和判断2都成立,最终的结果才为真
判断1 -o 判断2
逻辑或,判断1和判断2有一个成立,最终的结果就为真
!判断 逻辑非,使原始的判断式取反
第二章单分支if语句
2.1概述
Shell的语法结构和绝大多数语言有所不同
2.2单分支if语句
格式:
if [条件判断式];then
程序
fi
或
if [条件判断式]
then
程序
fi
单分支条件语句需要注意几个点:
*if语句使用fi结尾,和一般语言使用大括号结尾不同
*[ 条件判断式 ]就是使用test命令判断,所以中括号和条件判断式之间必须有空格
*then后面跟符号条件之后执行的程序,可以放在[]之后,用";"分割,也可以换行写入,就不需
要";"了
扩展:cut命令用法:
eg1:$ a=`echo root:x:0:0:root:/root:/bin/bash | cut -d : -f 1,5`
$ echo $a
结果:root:root
上面的例子中,把 root:x:0:0:root:/root:/bin/bash 重定向到cut命令里,-d表示分隔
符,这里使用冒号: 作为分隔符,-f 表示字段,选择了第1,和第5个字段
eg2:$ a=`echo root:x:0:0:root:/root:/bin/bash | cut -d : -f 1` 只打印第一个字段field
$ echo $a
结果:root
eg3:$ a=`echo root:x:0:0:root:/root:/bin/bash | cut -d : -f 1-` 打印第一个字段以后的所
有字段,包含第一个字段
$ echo $a
结果:root:x:0:0:root:/root:/bin/bash
eg4:$ a=`echo root:x:0:0:root:/root:/bin/bash | cut -d : -f 2-4` 截取第2到第4个字段
$ echo $a
结果:x:0:0
eg5:$ a=`echo root:x:0:0:root:/root:/bin/bash | cut -c 2-5 `
$ echo $a
结果:oot:
eg6:$ a=`echo root:x:0:0:root:/root:/bin/bash | cut -c -2 ` // 截取前两个字符
$ echo $a
结果:ro
eg:判断登陆用户是否是shiyanlou
#!/bin/bash #注释是Bash脚本
test=$(env | grep "USER" | cut -d "=" -f 2) #定义一个变量并给其赋值
if [ "$test" == "shiyanlou" ] #条件判断表达式之按字符串的判断
then #Shell中if语句的固定结构
echo "dangqian yonghu is shiyanlou"#程序
fi #Shell中if语句的固定结构
2.3例:判断分区使用率
#!/bin/bash
#统计根分区使用率
test=$(df -h | grep /dev/xvdb1 | awk '{print $5}' | cut -d "%" -f 1)
#把根分区使用率作为变量值赋予变量test
if [ "$test" -ge "50" ]
then
echo "/ is full"
fi
第三章双分支if语句
3.1例:判断输入的是否是一个目录
格式:
if [ 条件表达式 ]
then
条件成立时,执行的程序
else
条件不成立时,执行的另一个程序
fi
eg:判断输入的是否是一个目录
#!/bin/bash
#read命令用于读取键盘输入的数据
read -t 30 -p "please input a dir:" dir
#双分支if语句结构
if [ -d "$dir" ]
then
echo "he is a dir"
else
echo "he is a file"
fi
扩展:read命令的用法
read命令接收标准输入(键盘)的输入,或者其他文件描述符的输入。得到输入后,read命令将数据放入一
个标准变量中。
eg:read name #从键盘输入
eg:read -p "Enter your name:" name #-p参数,允许在read命令行中直接指定一个提示
eg:read -t 5 -p "please enter your name:" name #使用read命令存在着潜在危险。脚本很可能会停下
来一直等待用户的输入。如果无论是否输入数据脚本都必须继续执行,那么可以使用 -t 选项指定一个计时器,指定read命令
等待输入的秒数。当计时满时,read命令返回非零值(0为正常退出状态);
具体其它用法参考百度
3.2判断Apache服务是否启动
**扩展:一个网站正常的部分有:美工 程序 运维 Apache(要想程序可以运行必须通过它或类似的) Linux(服务器) 域名 IP 带宽
程序部署到Apache上,才能执行,而且Apache要放到Linux系统中,所以一个网站不能瘫痪,就必须保证其Apache服务一直是启动状态。
那如何保证呢?我们可以写一个shell脚本,假如其Apache服务卡了那我们可以设置重新启动
ps aux :查看Linux系统中正在运行的所有进程。相当于Windows系统中的任务管理器
ps aux | grep httpd | grep -v grep :查看Apache服务是否启动 (当然前提是其Linux系统中是否安装了Apache)
service httpd start : 启动Apache服务
service httpd stop:停止Apache服务
eg:shell脚本中编写程序Apache启动服务
#!/bin/bash
test=$(ps aux | grep httpd | grep -v grep)
#截取httpd进程,并把结果赋予变量test
if [ -n "$test" ]
#如果test的值不为空,则执行then中命令
then
echo "$(date) httpd is ok!" >> /tmp/autostart-acc.log
else
/etc/rc.d/init.d/httpd start & > /dev/null
echo "$(date) restart httpd !" >> /tmp/autostart-acc.log
fi
问题:我们写了这个脚本,假如我们Apache服务卡了,那我们没有执行这个脚本文件,也是没用啊???怎么让这个脚本随时再执行呢???(注意:我们这个脚本文件命名不能带有httpd的名字,不然该文件程序会失效)
第四章多分支if语句
4.1简介
格式:
if [ 条件判断式1 ]
then
当条件判断式1成立时,执行程序1
elif [ 条件判断式2 ]
then
当条件判断式2成立时,执行程序2
...省略更多条件...
else
当所有条件都不成立时,最后执行此程序
fi
4.2例:计算器???
#!/bin/bash
read -t 30 -p "please input num1:" num1
read -t 30 -p "please input num2:" num2
read -t 30 -p "please input operator:" op
if [ -n "$num1" -a -n "$num2" -a -n "$op" ]
then
test1=$(echo $num1 | sed 's/[0-9]//g') ???
test2=$(echo $num2 | sed 's/[0-9]//g') ???
if [ -z "$test1" -a -z "$test2" ]
then
if [ "$op" == "+" ]
then
res=$(($num1+$num2))
elif [ "$op" == "-" ]
then
res=$(($num1-$num2))
elif [ "$op" == "*" ]
then
res=$(($num1*$num2))
elif [ "$op" == "/" ]
then
res=$(($num1/$num2))
else
echo "operator input error"
exit 10 ???
fi
else
echo "num input error"
exit 11
fi
else
echo "please input content"
exit 12
fi
echo "$num1$op$num2=$res"
4.3例:判断用户输入的是什么文件
#!/bin/bash
read -t 30 -p "please input a filename:" file
if [ -z "$file" ]
then
echo "please input a filename"
exit 11 ???
elif [ ! -e "$file" ]
then
echo "$file not is a file"
exit 12
elif [ -f "$file" ]
then
echo "$file is a putong file"
elif [ -d "$file" ]
then
echo "$file is a dir"
else
echo "$file is a other file"
fi
第五章多分支case语句
5.1多分支case语句
*case语句和if...elif...else语句一样都是多分支条件语句,不过和if多分支条件语句不同的是,case语句
只能判断一种条件关系,而if语句可以判断多种条件关系。
*格式:
case $变量名 in
"值1")
如果变量的值等于值1,则执行程序1
;;
"值2")
如果变量的值等于值2,则执行程序2
;;
...省略其他分支...
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
eg:
#!/bin/bash
read -t 30 -p "please choose:" cho
case $cho in
"yes")
echo "you are choose yes"
;;
"no")
echo "you are choose no"
;;
*)
echo "you are choose error"
;;
esac
第六章for循环
6.1for循环
语法格式一:
for 变量 in 值1 值2 值3...
do
程序
done
eg1:#!/bin/bash
for i in 1 2 3 4 5
do
echo $i
done
eg2:批量解压缩脚本
$ cd ~
$ mkdir test(假如test文件夹中有若干个tar.gz压缩文件,那我们用一般方法解压就很麻烦)
$ vi a2.sh
#!/bin/bash
cd /home/shiyanlou/test/
ls *.tar.gz > ls.log #将所有的tar.gz压缩文件覆盖到ls.log文件中
#echo $(cat ls.log)
for i in $(cat ls.log) #利用for循环依次解压tar.gz文件
do
tar -zxvf $i
done
语法格式二:
for((初始值;循环控制条件;变量变化))
do
程序
done
eg:for(i=0;i<2;i++)
do
echo $i
done
6.2例:批量添加删除指定数量的用户 ???
#!/bin/bash
#批量添加指定数量的用户
read -t 30 -p "please input adduser name:" name
read -t 30 -p "please input adduser count:" num
read -t 30 -p "please input adduser password:" password
if [ -z "$name" -a ! -z "$num" -a ! -z "password" ]
then
y=$(echo $num | sed 's/[0-9]//g')
if [ -z "$y" ]
then
for((i=1;i<=$num;i++))
do
/usr/sbin/useradd $name$i & > /dev/null
echo $password | /usr/bin/passwd --stdin $name$i & > /dev/null
done
fi
fi
第七章while循环和until循环
7.1while循环和until循环
*while循环是不定循环,也称作条件循环。只要条件判断式成立,循环就会一直继续,直到条件判断式不成立,循环才会停止。这
就和for的固定循环不太一样了。
*语法格式:
while [ 条件判断式 ]
do
程序
done
*eg:
#!/bin/bash
i=1
sum=0
while [ $i -le 100 ]
do
sum=$(($sum+$i))
i=$(($i+1))
done
ehco $sum
*until循环,和while循环相反,until循环时只要条件判断式不成立则进行循环,并执行循环程序。一旦循环条件成立,则终止循
环。
*语法格式:
until [ 条件判断式 ]
do
程序
done
eg:
#!/bin/bash
i=1
sum=0
until [ $i -gt 100 ]
do
sum=$(($sum+$i))
i=$(($i+1))
done
ehco $sum
流程控制语句:
*条件判断式
*单分支if语句
*双分支if语句
*多分支if语句
*case语句
*for循环
*while循环和until循环
第一章 条件判断式语句
1.1概述:即该程序根据给定的条件来判断是否存在
1.2按文件类型判断
测试选项 作用
-d 文件 判断该文件是否存在,并且是否为目录文件(是目录为真)
-e 文件 判断该文件是否存在(存在为真)
-f 文件 判断该文件是否存在,并且是否为普通文件(是普通文件为真)
**两种判断格式
*test -e 文件路径(或文件名)
*[ -e 文件路径(或文件名)] 推荐用这个
eg:[ -e /root/install.log ]
echo $?
或
[ -e /root/install.log ] && echo yes || echo no
1.3按文件权限判断
测试选项 作用
-r文件 判断该文件是否存在,并且是否该文件拥有读权限(有读权限为真)
-w文件 判断该文件是否存在,并且是否该文件拥有写权限(有写权限为真)
-x文件 判断该文件是否存在,并且是否该文件拥有执行权限(有执行权限为真)
1.4两个文件之间的比较
测试选项作用
文件1 -nt 文件2
判断文件1的修改时间是否比文件2的新(如果新则为真)
文件1 -ot 文件2
判断文件1的修改时间是否比文件2的旧(如果旧则为真)
文件1 -ef 文件2
判断文件1与文件2的inode号是否一致,可以理解为两个文件是否一样。这个方法
是用于判断硬链接的最好方法
1.5两个整数之间的比较
测试选项 作用
整数1 -eq 整数2
判断整数1是否和整数2相等(相等为真)
整数1 -ne 整数2
判断整数1是否和整数2不相等(不相等为真)
整数1 -gt 整数2
判断整数1是否大于整数2(大于为真)
整数1 -lt 整数2
判断整数1是否小于整数2(小于为真)
整数1 -ge 整数2
判断整数1是否大于等于整数2(大于等于为真)
整数1 -le 整数2
判断整数1是否小于等于整数2(小于等于为真)
1.6字符串的判断
测试选项 作用
-z 字符串
判断字符串是否为空(为空返回真)
-n 字符串
判断字符串是否为非空(非空返回真)
字符串1 == 字符串2
判断字符串1是否和字符串2相等(相等返回真)
字符串1 != 字符串2
判断字符串1是否和字符串2不相等(不相等返回真)
1.7多重条件判断
测试选项 作用
判断1 -a 判断2 逻辑与,判断1和判断2都成立,最终的结果才为真
判断1 -o 判断2
逻辑或,判断1和判断2有一个成立,最终的结果就为真
!判断 逻辑非,使原始的判断式取反
第二章单分支if语句
2.1概述
Shell的语法结构和绝大多数语言有所不同
2.2单分支if语句
格式:
if [条件判断式];then
程序
fi
或
if [条件判断式]
then
程序
fi
单分支条件语句需要注意几个点:
*if语句使用fi结尾,和一般语言使用大括号结尾不同
*[ 条件判断式 ]就是使用test命令判断,所以中括号和条件判断式之间必须有空格
*then后面跟符号条件之后执行的程序,可以放在[]之后,用";"分割,也可以换行写入,就不需
要";"了
扩展:cut命令用法:
eg1:$ a=`echo root:x:0:0:root:/root:/bin/bash | cut -d : -f 1,5`
$ echo $a
结果:root:root
上面的例子中,把 root:x:0:0:root:/root:/bin/bash 重定向到cut命令里,-d表示分隔
符,这里使用冒号: 作为分隔符,-f 表示字段,选择了第1,和第5个字段
eg2:$ a=`echo root:x:0:0:root:/root:/bin/bash | cut -d : -f 1` 只打印第一个字段field
$ echo $a
结果:root
eg3:$ a=`echo root:x:0:0:root:/root:/bin/bash | cut -d : -f 1-` 打印第一个字段以后的所
有字段,包含第一个字段
$ echo $a
结果:root:x:0:0:root:/root:/bin/bash
eg4:$ a=`echo root:x:0:0:root:/root:/bin/bash | cut -d : -f 2-4` 截取第2到第4个字段
$ echo $a
结果:x:0:0
eg5:$ a=`echo root:x:0:0:root:/root:/bin/bash | cut -c 2-5 `
$ echo $a
结果:oot:
eg6:$ a=`echo root:x:0:0:root:/root:/bin/bash | cut -c -2 ` // 截取前两个字符
$ echo $a
结果:ro
eg:判断登陆用户是否是shiyanlou
#!/bin/bash #注释是Bash脚本
test=$(env | grep "USER" | cut -d "=" -f 2) #定义一个变量并给其赋值
if [ "$test" == "shiyanlou" ] #条件判断表达式之按字符串的判断
then #Shell中if语句的固定结构
echo "dangqian yonghu is shiyanlou"#程序
fi #Shell中if语句的固定结构
2.3例:判断分区使用率
#!/bin/bash
#统计根分区使用率
test=$(df -h | grep /dev/xvdb1 | awk '{print $5}' | cut -d "%" -f 1)
#把根分区使用率作为变量值赋予变量test
if [ "$test" -ge "50" ]
then
echo "/ is full"
fi
第三章双分支if语句
3.1例:判断输入的是否是一个目录
格式:
if [ 条件表达式 ]
then
条件成立时,执行的程序
else
条件不成立时,执行的另一个程序
fi
eg:判断输入的是否是一个目录
#!/bin/bash
#read命令用于读取键盘输入的数据
read -t 30 -p "please input a dir:" dir
#双分支if语句结构
if [ -d "$dir" ]
then
echo "he is a dir"
else
echo "he is a file"
fi
扩展:read命令的用法
read命令接收标准输入(键盘)的输入,或者其他文件描述符的输入。得到输入后,read命令将数据放入一
个标准变量中。
eg:read name #从键盘输入
eg:read -p "Enter your name:" name #-p参数,允许在read命令行中直接指定一个提示
eg:read -t 5 -p "please enter your name:" name #使用read命令存在着潜在危险。脚本很可能会停下
来一直等待用户的输入。如果无论是否输入数据脚本都必须继续执行,那么可以使用 -t 选项指定一个计时器,指定read命令
等待输入的秒数。当计时满时,read命令返回非零值(0为正常退出状态);
具体其它用法参考百度
3.2判断Apache服务是否启动
**扩展:一个网站正常的部分有:美工 程序 运维 Apache(要想程序可以运行必须通过它或类似的) Linux(服务器) 域名 IP 带宽
程序部署到Apache上,才能执行,而且Apache要放到Linux系统中,所以一个网站不能瘫痪,就必须保证其Apache服务一直是启动状态。
那如何保证呢?我们可以写一个shell脚本,假如其Apache服务卡了那我们可以设置重新启动
ps aux :查看Linux系统中正在运行的所有进程。相当于Windows系统中的任务管理器
ps aux | grep httpd | grep -v grep :查看Apache服务是否启动 (当然前提是其Linux系统中是否安装了Apache)
service httpd start : 启动Apache服务
service httpd stop:停止Apache服务
eg:shell脚本中编写程序Apache启动服务
#!/bin/bash
test=$(ps aux | grep httpd | grep -v grep)
#截取httpd进程,并把结果赋予变量test
if [ -n "$test" ]
#如果test的值不为空,则执行then中命令
then
echo "$(date) httpd is ok!" >> /tmp/autostart-acc.log
else
/etc/rc.d/init.d/httpd start & > /dev/null
echo "$(date) restart httpd !" >> /tmp/autostart-acc.log
fi
问题:我们写了这个脚本,假如我们Apache服务卡了,那我们没有执行这个脚本文件,也是没用啊???怎么让这个脚本随时再执行呢???(注意:我们这个脚本文件命名不能带有httpd的名字,不然该文件程序会失效)
第四章多分支if语句
4.1简介
格式:
if [ 条件判断式1 ]
then
当条件判断式1成立时,执行程序1
elif [ 条件判断式2 ]
then
当条件判断式2成立时,执行程序2
...省略更多条件...
else
当所有条件都不成立时,最后执行此程序
fi
4.2例:计算器???
#!/bin/bash
read -t 30 -p "please input num1:" num1
read -t 30 -p "please input num2:" num2
read -t 30 -p "please input operator:" op
if [ -n "$num1" -a -n "$num2" -a -n "$op" ]
then
test1=$(echo $num1 | sed 's/[0-9]//g') ???
test2=$(echo $num2 | sed 's/[0-9]//g') ???
if [ -z "$test1" -a -z "$test2" ]
then
if [ "$op" == "+" ]
then
res=$(($num1+$num2))
elif [ "$op" == "-" ]
then
res=$(($num1-$num2))
elif [ "$op" == "*" ]
then
res=$(($num1*$num2))
elif [ "$op" == "/" ]
then
res=$(($num1/$num2))
else
echo "operator input error"
exit 10 ???
fi
else
echo "num input error"
exit 11
fi
else
echo "please input content"
exit 12
fi
echo "$num1$op$num2=$res"
4.3例:判断用户输入的是什么文件
#!/bin/bash
read -t 30 -p "please input a filename:" file
if [ -z "$file" ]
then
echo "please input a filename"
exit 11 ???
elif [ ! -e "$file" ]
then
echo "$file not is a file"
exit 12
elif [ -f "$file" ]
then
echo "$file is a putong file"
elif [ -d "$file" ]
then
echo "$file is a dir"
else
echo "$file is a other file"
fi
第五章多分支case语句
5.1多分支case语句
*case语句和if...elif...else语句一样都是多分支条件语句,不过和if多分支条件语句不同的是,case语句
只能判断一种条件关系,而if语句可以判断多种条件关系。
*格式:
case $变量名 in
"值1")
如果变量的值等于值1,则执行程序1
;;
"值2")
如果变量的值等于值2,则执行程序2
;;
...省略其他分支...
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
eg:
#!/bin/bash
read -t 30 -p "please choose:" cho
case $cho in
"yes")
echo "you are choose yes"
;;
"no")
echo "you are choose no"
;;
*)
echo "you are choose error"
;;
esac
第六章for循环
6.1for循环
语法格式一:
for 变量 in 值1 值2 值3...
do
程序
done
eg1:#!/bin/bash
for i in 1 2 3 4 5
do
echo $i
done
eg2:批量解压缩脚本
$ cd ~
$ mkdir test(假如test文件夹中有若干个tar.gz压缩文件,那我们用一般方法解压就很麻烦)
$ vi a2.sh
#!/bin/bash
cd /home/shiyanlou/test/
ls *.tar.gz > ls.log #将所有的tar.gz压缩文件覆盖到ls.log文件中
#echo $(cat ls.log)
for i in $(cat ls.log) #利用for循环依次解压tar.gz文件
do
tar -zxvf $i
done
语法格式二:
for((初始值;循环控制条件;变量变化))
do
程序
done
eg:for(i=0;i<2;i++)
do
echo $i
done
6.2例:批量添加删除指定数量的用户 ???
#!/bin/bash
#批量添加指定数量的用户
read -t 30 -p "please input adduser name:" name
read -t 30 -p "please input adduser count:" num
read -t 30 -p "please input adduser password:" password
if [ -z "$name" -a ! -z "$num" -a ! -z "password" ]
then
y=$(echo $num | sed 's/[0-9]//g')
if [ -z "$y" ]
then
for((i=1;i<=$num;i++))
do
/usr/sbin/useradd $name$i & > /dev/null
echo $password | /usr/bin/passwd --stdin $name$i & > /dev/null
done
fi
fi
第七章while循环和until循环
7.1while循环和until循环
*while循环是不定循环,也称作条件循环。只要条件判断式成立,循环就会一直继续,直到条件判断式不成立,循环才会停止。这
就和for的固定循环不太一样了。
*语法格式:
while [ 条件判断式 ]
do
程序
done
*eg:
#!/bin/bash
i=1
sum=0
while [ $i -le 100 ]
do
sum=$(($sum+$i))
i=$(($i+1))
done
ehco $sum
*until循环,和while循环相反,until循环时只要条件判断式不成立则进行循环,并执行循环程序。一旦循环条件成立,则终止循
环。
*语法格式:
until [ 条件判断式 ]
do
程序
done
eg:
#!/bin/bash
i=1
sum=0
until [ $i -gt 100 ]
do
sum=$(($sum+$i))
i=$(($i+1))
done
ehco $sum
相关文章推荐
- Linux shell脚本输出日志笔记整理
- Mysql 数据库升级shell脚本编写与测试心得
- xshell 中 alt+. 快捷键无法使用
- HELL编程-shell编程实战
- linux关于bashrc与profile的区别(转)
- HBase 常用Shell命令
- hbase shell基础和常用命令详解
- shell基础语法
- Shell中遍历整个目录查找某个关键字
- 改变当前shell工作目录
- shell------随机产生三位数
- shell 查看当前目录下文件的个数
- shell学习随笔
- shell 判断一个变量是否为空
- 使用Powershell批量设置Exchange 2013 虚拟目录URL
- 十一.Shell编程之运算符
- 十.Shell编程之变量
- shell 之 grep 控制显示关键字的 上下行数和不区分大小写
- HoloLens开发手记 - HoloLens shell概述 HoloLens shell overview
- shell除法保留两位小数