shell{
1 while 循环 :【
while [ $i -lt 10 ]
do
done
注意 在变量自增的时候
如果直接 $num+1 字符串拼接
num=$(($num+1)) #当数字计算
num=$[$num+1] //[]可以代替上面
例如:
num=1
while (( $num<10 ))
do
echo $num
num=$(($num+1))
done
输出1-10
】
利用循环创建目录 mkdir "dir"$num
利用循环删除目录 rm -r "dir"$num
单行注释 #
多行注释 <<!
...
!
2 for 语法【
for n in a b c d
do
echo $n
done
输出abcd
for((i=0;i<100;i++)) 或者 for i in {1..100}
do
echo $i
done
输出0-99 输出1-100
】
例子:删除文件 删除所有大小为0的文件
分析:1 遍历文件 2 判断文件大小 如果为 0
判断文件大小 cut -d ' ' -f 5 //按照空格截取 获取第五列属性
例如:
ls -l var.sh | cut -d ' ' -f 5
在循环等位置执行命令的时候 有歧义 可以使用 `` 包含 表命令 tab 上面 1 左面的那个键
以下代码删除空文件
for fn in `ls`
do
if [ "`ls -l $fn | cut -d '' -f 5`" -eq 0 ];
then
rm $fn
echo "delete"$fn
fi
done
目录的大小为4096 不管是否为空
以下代码为删除空目录和空文件夹
for fn in `ls`
do
if test -d $fn //test -d 是判断是否为目录
if [ "`ls -A $fn`" == "" ]; //ls -A是显示目录中的文件 包括隐藏的
rm -r $fn
then echo "delete empty dir"$fn
fi
else
if[ "`ls -l $fn | cut -d '' -f 5`" -eq 0 ];
then
rm $fn
echo delete empty file"$fn
fi
fi
done
while:break【
while : 是死循环
完成了一个 直到某个条件才结束循环的功能
exit!
】
例如:
echo "haha" >> haha.log //5s一个写进去文件
输入文件名连续创建文件夹 直到输入exit!退出
echo "input dir name for create,input 'exit!' for quit"
while : //死循环
do
read -p 'input name : ' fn //相当于scanner之前的提示
if[ "$fn" == "" ]; //注意这个变量要加引号 判断字符串是否为空
then echo "illegal file name"
elif [ $fn == "exit!" ]
then
echo "exit now! "
break; //不要把break 写在echo后面
else
echo "mkdir dir"
mkdir $fn
fi
done
}
函数{
1 定义函数
function 函数名 () { 函数体 }
例如:
function first(){
echo "hello world!"
}
function add(){
result=$[$1+$2] //两个变量相加
echo $result
}
2 调用函数 函数名 参数1 参数2
first //函数的调用 先声明后使用
echo $(first)"sasasa" //输出函数
结果:hello worldsasasa
add 1 2
结果:3
3 $1 取第一个参
echo 输出结果 $(函数名取结果)
}
日期命令
date 能获得时间 没有毫秒级别的输出
格式化时间
date +"%m-%Y" //12-2017
date +"%s" //秒
date +"%N" //当前时间的纳秒部分
开机自动重启网卡{
修改配置文件
会查 会操作
}
练习:制作一个随机数的函数并调用
要求 可以指定 最大最小值
1 while 循环 :【
while [ $i -lt 10 ]
do
done
注意 在变量自增的时候
如果直接 $num+1 字符串拼接
num=$(($num+1)) #当数字计算
num=$[$num+1] //[]可以代替上面
例如:
num=1
while (( $num<10 ))
do
echo $num
num=$(($num+1))
done
输出1-10
】
利用循环创建目录 mkdir "dir"$num
利用循环删除目录 rm -r "dir"$num
单行注释 #
多行注释 <<!
...
!
2 for 语法【
for n in a b c d
do
echo $n
done
输出abcd
for((i=0;i<100;i++)) 或者 for i in {1..100}
do
echo $i
done
输出0-99 输出1-100
】
例子:删除文件 删除所有大小为0的文件
分析:1 遍历文件 2 判断文件大小 如果为 0
判断文件大小 cut -d ' ' -f 5 //按照空格截取 获取第五列属性
例如:
ls -l var.sh | cut -d ' ' -f 5
在循环等位置执行命令的时候 有歧义 可以使用 `` 包含 表命令 tab 上面 1 左面的那个键
以下代码删除空文件
for fn in `ls`
do
if [ "`ls -l $fn | cut -d '' -f 5`" -eq 0 ];
then
rm $fn
echo "delete"$fn
fi
done
目录的大小为4096 不管是否为空
以下代码为删除空目录和空文件夹
for fn in `ls`
do
if test -d $fn //test -d 是判断是否为目录
if [ "`ls -A $fn`" == "" ]; //ls -A是显示目录中的文件 包括隐藏的
rm -r $fn
then echo "delete empty dir"$fn
fi
else
if[ "`ls -l $fn | cut -d '' -f 5`" -eq 0 ];
then
rm $fn
echo delete empty file"$fn
fi
fi
done
while:break【
while : 是死循环
完成了一个 直到某个条件才结束循环的功能
exit!
】
例如:
echo "haha" >> haha.log //5s一个写进去文件
输入文件名连续创建文件夹 直到输入exit!退出
echo "input dir name for create,input 'exit!' for quit"
while : //死循环
do
read -p 'input name : ' fn //相当于scanner之前的提示
if[ "$fn" == "" ]; //注意这个变量要加引号 判断字符串是否为空
then echo "illegal file name"
elif [ $fn == "exit!" ]
then
echo "exit now! "
break; //不要把break 写在echo后面
else
echo "mkdir dir"
mkdir $fn
fi
done
}
函数{
1 定义函数
function 函数名 () { 函数体 }
例如:
function first(){
echo "hello world!"
}
function add(){
result=$[$1+$2] //两个变量相加
echo $result
}
2 调用函数 函数名 参数1 参数2
first //函数的调用 先声明后使用
echo $(first)"sasasa" //输出函数
结果:hello worldsasasa
add 1 2
结果:3
3 $1 取第一个参
echo 输出结果 $(函数名取结果)
}
日期命令
date 能获得时间 没有毫秒级别的输出
格式化时间
date +"%m-%Y" //12-2017
date +"%s" //秒
date +"%N" //当前时间的纳秒部分
开机自动重启网卡{
修改配置文件
会查 会操作
}
练习:制作一个随机数的函数并调用
要求 可以指定 最大最小值