Linux16-shell分支循环语句

目录

for的用法(明确次数)

whie的用法(明确结束条件)

$ 符号的用法

grep 的用法

这个命令都不陌生,最常用的就是和管道符结合

例如:ps -ef | grep docker。

注释:

实例


for的用法(明确次数)

for的范围表达式

for i in {1..100}; do 
	let sum+=i
done

whie的用法(明确结束条件)

i=0
while [ $1 -lt 10 ]; do
  xxxxxx
done

$ 符号的用法

$0:Shell 的命令本身
$1 到 $9:表示 Shell 的第几个参数
$? :显示最后命令的执行情况
$#:传递到脚本的参数个数
$$:脚本运行的当前进程 ID 号
$*:以一个单字符串显示所有向脚本传递的参数
$!:后台运行的最后一个进程的 ID 号
$-:显示 Shell 使用的当前选项
————————————————
版权声明:本文为CSDN博主「Jack Tian」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jake_tian/article/details/97274630

grep 的用法

这个命令都不陌生,最常用的就是和管道符结合

例如:ps -ef | grep docker。

Grep称为全局正则表达式检索工具,在企业中被广泛的采用。

-a 不要忽略二进制数据。
-A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
-c 计算符合范本样式的列数。
-C<显示列数>或-<显示列数>  除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式> 指定字符串作为查找文件内容的范本样式。
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F 将范本样式视为固定字符串的列表。
-G 将范本样式视为普通的表示法来使用。
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H 在显示符合范本样式的那一列之前,标示该列的文件名称。
-i 忽略字符大小写的差别。
-l 列出文件内容符合指定的范本样式的文件名称。
-L 列出文件内容不符合指定的范本样式的文件名称。
-n 在显示符合范本样式的那一列之前,标示出该列的编号。
-q 不显示任何信息。
-R/-r 此参数的效果和指定“-d recurse”参数相同。
-s 不显示错误信息。
-v 反转查找。
-w 只显示全字符合的列。
-x 只显示全列符合的列。
-y 此参数效果跟“-i”相同。
-o 只输出文件中匹配到的部分。
————————————————
版权声明:本文为CSDN博主「我就叫贝塔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44984864/article/details/107141332

注释:

  • [ ]命令相当于test命令(检查文件和比较值)
  • e.g. : if [ $# -eq 1]
if 或elif 后面跟的条件,事实上是一条可执行的程序,判断的依据是该程序是否执行成功
if  条件;
then
命令
fi

如果脚本的参数个数少于3个,则提示用户需要3个参数:
if [ $# -lt 3 ]; then
echo "sorry, it needs 3 args"
fi

if 条件;	then
命令1
fi

if 条件;	then
命令1
else
命令2
fi

提示用户输入他的账号,并显示欢迎信息,如为空贝提示:
echo "please input your name : "
read NAME
if [ "SNAME" =""]; then
echo "Your name is null"
else
	echo "welcome,SNAME"

实例

1、#获取文件一行一行的内容,加上行号进行输出:

line=1
while read FILE
do
        echo "$line:    $FILE"
        let line++
done < /etc/group

2、 # 计算从1-10相加

#sum=0
#for i in 1 2 3 4 5 6 7 8 9 10; do
#       sum=`expr $sum + $i`
#       let sum=sum+i 
#       let sum+=i
#       ((sum+=i))
#done
#echo "1+...+10=$sum"

sum=0
for i in {1..100}; do
        let sum+=i
done
echo "1到10的和为: $sum"

3、#通过参数决定对每个文件进行查找,并输出相应的行号

if [ ${#} -gt 1 ] ; then
    echo "参数请小于1!!!"
    exit 100
elif [ ! -e ${1} ] ; then
    echo "文件不存在"
else
    grep -n root $1

fi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电信布谷鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值