我的shell脚本入门

本文介绍了如何使用Shell脚本来处理文件,包括使用for循环为.out文件添加.bak后缀,并通过if和case分支语句检查数字是否以2、5或8结尾。在修复了if结构的语法错误后,作者继续尝试使用case语句进行更复杂的判断,同时探讨了变量递增的不同方式。
摘要由CSDN通过智能技术生成

目录/home/moonch/myshell

 1shell.sh

#题目1:使用for循环语句编写脚本,将目录下全部以“.out”结尾文件增加“.bak”后缀,并提示工作进度(echo显示当前文件名)
#!/bin/bash
for i in *.out
do
    mv $i $i.bak
    echo $i
done

 

2shell.sh

用if分支语句

#使用while循环语句,循环计数30次,并用if或case分支语句,判断结尾为2、5或8的次数,分别给出一种提示。
#!/bin/bash
i=0
while [ $i -lt 30 ]
do
if [ $i in *2 ] | [ $i in *5 ] | [ $i in *8 ]
echo $i
fi
i=$($i+1)
done

 报错,待解决 已解决

问题一:if结构中需要

if

then

fi

缺了then就会报以上错误

修改后

#使用while循环语句,循环计数30次,并用if或case分支语句,判断结尾为2、5或8的次数,分别给出一种提示。
#!/bin/bash
i=0
while [ $i -lt 30 ]
do
if [ $i in *2 ] | [ $i in *5 ] | [ $i in *8 ]
then
echo $i
fi
i=$($i+1)
done

报错更多了诶,待解决

问题二:

 

3shell.sh

用case分支语句

i=0
while [ $i -lt 30 ]
do
case $i in
*"2"|"2") echo "$i是以2结尾的" ;;
*"5"|"5") echo "$i是以5结尾的" ;;
*"8"|"8") echo "$i是以8结尾的" ;;
esac
i=$(($i+1))
done

问题:i=$(($i+1))什么意思,怎么不能是i=i+1

:(

目录

目录/home/moonch/myshell

 1shell.sh

2shell.sh

3shell.sh


 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值