shell例子记录
原创
©著作权归作者所有:来自51CTO博客作者不再更新的博客的原创作品,如需转载,请与作者联系,否则将追究法律责任
1.模仿轮替显示
echo red>a.txt
echo green >b.txt
echo yellow >c.txt
#!/bin/bash
while : /*while: 这是做了一个死循环,:和true一样*/
do
clear /*运行前清屏幕*/
echo "one:`cat a.txt`"
echo "two:`cat b.txt`"
echo "three:`cat c.txt`" /*先显示ABC对应的内容*/
echo
sleep 2 /*脚本停留两秒,因为脚本运行很快,眼睛不好看到效果*/
tmp=$(cat a.txt) /*先把a.txt里面的内容暂存到一个容器*/
cat b.txt > a.txt
cat c.txt > b.txt
echo $tmp > c.txt /*实现三个文件中内容的替换*/
done
下面这段是直接在shell下面敲出的命令而不是写进脚本,其实是一样的,但是这样可以锻炼写命令的能力,很有助于自己练习shell
while :; do clear; echo "one:`cat a.txt`"; echo "two:`cat b.txt`"; echo "three:`cat c.txt`"; echo; sleep 2; tmp=$(cat a.txt); cat b.txt >a.txt; cat c.txt >b.txt; echo $tmp >c.txt; done
2.用case些一个用户选择菜单,跟据用户的输入相应打印信息。
#!/bin/bash
echo
echo -e "\tp\ttype cpuinfo"
echo -e "\tm\ttype meminfo"
echo -e "\td\tdisk info"
echo -e "\th\tfor help"
echo -e "\tq\tquit the scripts"
echo
key=1 /*用户自定义的变量最好小写,因为系统变量都是大写,这样不至于在脚本中系统变量和用户自定义变量共存时不好分辨*/
while [ $key -eq 1 ] /*死循环*/
do
read -p 'please choice (type h for help):' choice /*read -p打印字符*/
case $choice in
D|d|disk|DISK)
df -Th;;
P|p|cpu|CPU)
awk -F: '$1 ~ /model name/ {print $2} $1 ~ /processor/ {print $0}' /proc/cpuinfo;;
M|m|mem|MEM)
awk -F: 'NR<5 {print $0}' /proc/meminfo;;
q|Q|quit|exit)
key=0;; /*key这个变量不等于1,便退出死循环了*/
*)
clear
echo
echo -e "\tp\ttype cpuinfo"
echo -e "\tm\ttype meminfo"
echo -e "\td\tdisk info"
echo -e "\th\tfor help"
echo -e "\tq\tquit the scripts"
echo
esac
done
echo "BYEBYE"
3.打印1-10一层层添加效果如下:
for i in {1..10};do file="$file $i" && echo $file;done
/*file="$file $i"对file变量不断追加内容*/
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 10
4.找出目录下所有的txt文本文件,查看内容并判断是否做删除处理,在处理最后统计删除的数量和文件名称。
#!/bin/bash
for files in $(find . -maxdepth 1 -type f -name "*.txt")
do
echo
echo "File: $files"
awk 'NR<=3 {print "line"NR ": " $0}' $files
echo
key=1
while [ $key == 1 ]
do
read -p "delete it?(Y/N):" choice
case $choice in
Y|y|YES|yes)
rm -rf $files
((count++))
deleted="$deleted $files"
echo "$file has been deleted!"
key=0
;;
N|n|NO|no)
echo "$file was not been deleted"
key=0
;;
esac
done
done
echo "all the txt has been processed!!"
echo "file deleted:"$deleted
echo "file counts:"$count
echo
下一篇:正则中很有用的字符匹配例子
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
python协程(asyncio)实现爬虫例子
使用python协程实现异步爬取网站。
python 协程 爬虫 -
shell循环例子
一个shell for循环的例子。
职场 shell for 休闲 循环