shell基础脚本

本文介绍了Shell脚本的基础操作,包括在/backup目录下创建和管理.txt文件,批量修改文件扩展名,打包压缩文件,使用for循环进行文件操作。此外,还讲解了Shell中的字符串处理,变量运算,awk和bc等工具进行数学计算,以及编写类似计算器的脚本。最后,讨论了Shell中的条件判断语句如if-else,文件比较以及服务状态检测。
摘要由CSDN通过智能技术生成

在/backup下创建10个.txt的文件,找到/backup目录下所有后缀名为.txt的文件
1)批量修改txt为txt.bak
2)把所有的.bak文件打包压缩为123.tar.gz
3)批量还原文件的名字,及把增加的.bak再删除

[root@shell shell]# vim  mv.sh
#!/bin/bash
Dir=/backup
#判断目录是否存在,不存在则创建
[ -d $Dir ] || mkdir -p  $Dir
#创建10个文件
touch  $Dir/{
   1..10}.txt
#找到这些文件,进行批量修改名称
find $Dir -type f -name "*.txt" >$Dir/txt.log
#批量修改文件名
sed -r 's#(.*)#mv \1 \1.bak#g'  $Dir/txt.log |bash
#打包压缩为123.tar.gz
tar czf  $Dir/123.tar.gz  $Dir/*.bak
#批量进行还原文件名
find $Dir -type f -name "*.bak" >$Dir/bak.log
#还原
sed -r 's#(.*).bak#mv \1.bak \1#g'  $Dir/bak.log |bash 

for循环方式修改

[root@shell shell]# vim  for_name.sh
#!/bin/bash
Dir=/backup
#判断目录是否存在,不存在则创建
[ -d $Dir ] || mkdir -p  $Dir
#创建10个文件
touch  $Dir/{
   1..10}.txt
#批量修改文件名
find $Dir -type f -name "*.txt" >$Dir/txt.log
#使用for循环进行修改
for i in $(cat $Dir/txt.log)
do
    mv $i $i.bak
done
#打包压缩为123.tar.gz
tar czf  $Dir/123.tar.gz  $Dir/*.bak
#查找文件
find $Dir -type f -name "*.bak" >$Dir/bak.log
#批量还原
for j in $(cat $Dir/bak.log)
do
    mv $j ${
   j%.*}
done             

取出下列字符串长度小于3的单词,I am qiuzengjia teacher I am 18。

[root@shell shell]# vim  for-1.sh
#!/bin/bash
#定义变量
length='I am qiuzengjia teacher I am 18'
#使用for循环判断变量值长度,小于3则显示,否则不显示
for i in $length
do
    [ ${
   #i} -lt 3 ] && echo $i                                                                                                       
done
[root@shell shell]# echo "I am qiuzengjia teacher I am 18" |xargs -n1 |awk  '{ if ( length < 3 ) print }'
I
am
I
am
18

在这里插入图片描述
shell变量运算

加减乘除余方

整数运算

expr 值两边必须要有空格隔开

[root@shell shell]# expr  1 + 1
2
[root@shell shell]# num1=10
[root@shell shell]# num2=20
[root@shell shell]# expr $num1 + $num2
30
[root@shell shell]# expr $num1 - $num2
-10
[root@shell shell]# expr $num1 * $num2
expr: syntax error
[root@shell shell]# expr $num1 \* $num2
200
[root@shell shell]# expr $num1 / $num2
0
[root@shell shell]# expr $num2 / $num2
1
[root@shell shell]# expr $num2 % $num2
0
[root@shell shell]# expr $num1 % $num2
10


$(())  

[root@shell shell]# echo  $(( $num1 + $num2 ))
30
[root@shell shell]# echo  $(( $num1 - $num2 ))
-10
[root@shell shell]# echo  $(( $num1 * $num2 ))
200


$[]

[root@shell shell]# echo $[$num1 * $num2 ]
200
[root@shell shell]# echo $[$num1 / $num2 ]
0
[root@shell shell]# echo $[$num1 + $num2 ]
30

let ****

[root@shell shell]# a=1
[root@shell shell]# let a++
[root@shell shell]# echo $a
2
[root@shell shell]# let a++
[root@shell shell]# echo $a
3
[root@shell shell]# let a--
[root@shell shell]# echo $a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值