Shell语法(循环+文件读写)

  • Post author:
  • Post category:其他




2.语法(循环+文件读写)01



for循环



语法格式

for 变量 in 字符串

do

    语句1
done

介绍完for语法格式后,先看一下Linux自带的一个类似for循环的命令



seq命令

seq 1 15

输出1一直到15

1
2
3
4
5
6
78
9
10
11
12
13
14
15



示例

#!/bin/bash

for i in `seq 1 15`
do 
    echo "数字  $i"
done

输出

数字 1
数字 2
数字 3
数字 4
数字 5
数字 6
数字 7
数字 8
数字 9
数字 10
数字 11
数字 12
数字 13
数字 14
数字 15



加法的使用

#!/bin/bash
j=0
for((i=0;i<=100;i++))
do 
    j=`expr $i + $j`  //中间有空格 不然无法区分参数
done
echo $j

输出

5050



压缩文件

tar czf all.tgz * // 将文件压缩到all.tgz

这里有一个需求,找出

.sh

结尾的文件并压缩为tgz

#!/bin/bash

for i in `find /root -name "*.sh"`
do
    tar -czf xiao.tgz $i
done



while循环



语法格式

while 条件语句
do
    语句
done



示例

#!/bin/bash

i=0
while((i<100))
do
    echo "数字 $i"
    i=`expr $i + 1`
done

输出

数字0
数字1
...
数字99



while中间添加命令

指令表达式用的是 [[ … ]]

算数表达式用的是(( … ))

这里通过[[ ]] 中间添加-lt参数

#!/bin/bash

i=0
while [[ $i -lt 100 ]]
do
    echo "数字 $i"
    i=`expr $i + 1`
done



文件读取

#!/bin/bash
while read line
do
    echo $line
done<~/text.txt

这里有一个

text.txt

文件

123
234
345

读取文件

#!/bin/bash
while read line
do
    echo $line
done<~/text.txt

输出

123
234
345



版权声明:本文为xiaolei999原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。