shell编程学习以及样例

1 篇文章 0 订阅

1.for循环

#语法一
for 变量 in 值1 值2 值3..
  do
   程序块儿
  done
#
#语法二
for 变量 `命令`      #注意这里的符号,不是'',而是``
  do
   程序块儿
  done
#
#语法三
for ((初始值; 循环控制; 变量变化))
 do
  程序块儿
 done

实例:依次向某个目录中的每个文件或子目录问好,形如:
        (提示:for FILE in /var/*;或for FILE in `ls /var`;)
        Hello,log
        并统计/该目录下共有多个文件,并显示出来

#!/bin/bash
cd /home/easadon
ls
let num=0
for I in `ls /home/easadon`;
do
	echo "hello $I"
	num=$[$num+1]
done
echo "the number of files is $num"

运行结果:

2.参数传递

方式一:$0,$1,$2..

采用$0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用${10},${11}....才能获取到参数,但是一般很少会超过10个参数的情况。

方式二:getopts

语法格式:getopts [option[:]] [DESCPRITION] VARIABLE
option:表示为某个脚本可以使用的选项
":":如果某个选项(option)后面出现了冒号(":"),则表示这个选项后面可以接参数(即一段描述信息DESCPRITION)
VARIABLE:表示将某个选项保存在变量VARIABLE中

实例:编写一个脚本,具有三个传入的参数,第一个代表运算符号,接下来两个代表要计算的数,输出计算结果

#!/bin/bash
echo "脚本路径:$0"
echo "first number :$2"
echo "second number:$3"
a=$2
b=$3
while getopts ":c:d:e:f:" opt
do
#c:add  d:subtract  e:multiply  f:divide
	case $opt in
	c)
	echo "加法:$[$a+$b]"
	;;
	d)
	echo "减法:$[$a-$b]"
	;;
	e)
	echo "乘法:$[$a*$b]"
	;;
	f)
	echo "除法:$[$a/$b]"
	;;
	?)
	echo "未知参数"
	exit 1
	;;
	esac
done

运行结果

3.设置数字区间

方式1:{1..10}

方式2:`seq 1 10`

编写一个脚本,通过ping命令测试192.168.0.245到192.168.0.254之间的所有主机是否在线
       如果在线,就显示“ip is up”
       如果不在线,就显示“ip is down”

#!/bin/bash
for I in `seq 245 254`
#for I in {245..254}
do    
   ping -c1 -w1 192.168.0.$I &>/dev/null && echo "192.168.0.$I is up" || echo "192.168.0.$I is down"
done

4.颜色设置

echo -e "\033[字背景颜色;字体颜色m字符串\033[0m" 

字背景颜色范围:40----49 
40:黑 
41:深红 
42:绿 
43:黄色 
44:蓝色 
45:紫色 
46:深绿 
47:白色 

字颜色:30-----------39 
30:黑 
31:红 
32:绿 
33:黄 
34:蓝色 
35:紫色 
36:深绿 
37:白色 

===============================================ANSI控制码的说明 
\33[0m 关闭所有属性 
\33[1m 设置高亮度 
\33[4m 下划线 
\33[5m 闪烁 
\33[7m 反显 
\33[8m 消隐 
\33[30m -- \33[37m 设置前景色 
\33[40m -- \33[47m 设置背景色 
\33[nA 光标上移n行 
\33[nB 光标下移n行 
\33[nC 光标右移n行 
\33[nD 光标左移n行 
\33[y;xH设置光标位置 
\33[2J 清屏 
\33[K 清除从光标到行尾的内容 
\33[s 保存光标位置 
\33[u 恢复光标位置 
\33[?25l 隐藏光标 
\33[?25h 显示光标

例子:编写一个脚本可以控制字符串的颜色输出

#!/bin/bash
echo "Enter the string:"
read str
echo "Enter the Background color:"
read bcolor
echo "Enter the word color:"
read wcolor
echo -e "\033[${bcolor};${wcolor}m${str}\033[0m"
echo -e "\033[47;30m$str\033[0m"

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值