重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、for FILE in $(ls); do [COMMAND]; done
海南网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联从2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
2、for a in {1..100}; do echo $RANDOM; done
3、for (( c=1; c=5; c++ )); do echo $RANDOM; done
4、for ((c=1; c21; c+=2)); do echo "Welcome $c times" ; done
5、for line in $(cat user.txt); do getent shadow $line; done
6、for FILE in $(cat file); do tar zcf $FILE.tar.gz $FILE;rm -rf $FILE; done
7、# awk计算所有行所有区域的总和
awk '{for (i=1; i=NF; i++) s=s+$i}; END{print s}'
#!/bin/sh
while :
do
ntpdate 192.168.0.235
sleep 1
done
保存这个脚本,比较叫file.sh
然后给他执行权限 chmod +x file.sh
设置开机自动启动 cp file.sh /etc/rc3.d/S99ntp
cp file.sh /etc/rc5.d/S99ntp
时间可以自己调,我上面写sleep 1 是停一秒
echo -e "Please enter your choice (A-Q) : "
read choice
while [ $choice != "Q" ] [ $choice != "q" ]
do
if [ $choice = "A" ] || [ $choice = "a" ]
then
echo "A) Creat a user account"
elif [ $choice = "B" ] || [ $choice = "b" ]
then
echo "B) Delete a user account"
elif [ $choice = "C" ] || [ $choice = "c" ]
then
echo "C) Change supplementary group for a user account"
elif [ $choice = "D" ] || [ $choice = "d" ]
then
echo "D) Change initial group for a user account"
elif [ $choice = "E" ] || [ $choice = "e" ]
then
echo "E) Change defult login shell for a user account"
elif [ $choice = "F" ] || [ $choice = "f" ]
then
echo "F) Change account expiration date for a user account"
fi
read choice
done
echo "Q) Quit"
摘要: Linux , Shell
Shell中常用循环有 for , while
for循环只能用于 固定次数 的循环,因此不能无限循环和用于一些在后台守护进程一直运行的程序,语法语句如下
也可以写成一行,用 ; 分隔
取值列表内元素以空格隔开,如果元素带有空格则用引号包裹起来,例子如下
输出如下,可见循环到最后退出循环,引用变量依旧是最后一个取值列表元素
一行的写法
Shell的for循环也可以采用C语言的写法,注意是 双括号 ,用 分号; 间隔
一个简单例子
while循环语句结合条件测试使用,语法如下
举一个例子
在循环中使用条件测试实现复杂的逻辑,例如
也可以使用,||一行完成,省去if,fi
Shell的continue,break语句和Python一样,例子如下
break语句下输出4
continue语句下输出4 6 7 8 9 10
常见结合使用的循环体有 序列 , 数组 , 命令行传参 , 文件目录和文件
序列通过 seq 命令或者 {begin..end..step} 符号进行定义:
结合for循环使用案例
在Shell中使用小括号 () 定义数组,数组遍历使用 [@] 符号,防止元素有空格用双引号包起来,,例子如下
命令行传参遍历使用固定符号 $@ ,如果参数中有空格,用双引号括起来,例子如下
文件遍历使用 ls 命令,可以指定目录,以及通配符匹配
一个双重循环实现,注意 expr表达式中乘号要加转移符
(2)将某目录下大小大于阈值的文件移动到另一个文件
遍历循环一个目录,使用awk语法获得文件大小,将100m以上的文件移动到另一个文件夹
(2)指定开始日期和结束日期完成一个跑批任务
指定一个开始时间和结束时间,while从开始日期一直自增到结束日期循环结束,通过 date -d '2021-01-01 1day' +%Y-%m-%d 自增一天
什么是永久的在后台运行 一直运行这一个命令? 如果是这样就写一个脚本 while 无限循环命令 如果不是 就直接把你命令转到后台就行