guo20082200的个人博客分享 http://blog.sciencenet.cn/u/guo20082200

博文

linux_centos第16次课 循环

已有 2388 次阅读 2015-8-25 17:29 |个人分类:Linux学习|系统分类:科研笔记|关键词:学者| style, 基础知识, default, images, themes

16次课 shell基础知识

 

复习上节课知识

[root@ghqpub]# a=1

[root@ghqpub]# if (($a<5));then echo "a<5"; fi (可以用< >)

a<5

[root@ghqpub]# if [[ 1.2 < 1.5 ]]; then echo "sb"; fi (两个中括号)

sb

 

[root@ghq pub]# seq -w 0 15

00

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

[root@ghq pub]# seq -w 90 110

090

091

092

093

094

095

096

097

098

099

100

101

102

103

104

105

106

107

108

109

110

 

嵌套的for循环

 

 

新内容

While循环

[root@ghq pub]# sh while.sh

0

1

2

3

4

5

6

7

8

9

10

[root@ghq pub]# sh -x while.sh

+a=0

+'[' 0 -le 10 ']'

+echo 0

0

+a=1

+'[' 1 -le 10 ']'

+echo 1

1

+a=2

+'[' 2 -le 10 ']'

+echo 2

2

+a=3

+'[' 3 -le 10 ']'

+echo 3

3

+a=4

+'[' 4 -le 10 ']'

+echo 4

4

+a=5

+'[' 5 -le 10 ']'

+echo 5

5

+a=6

+'[' 6 -le 10 ']'

+echo 6

6

+a=7

+'[' 7 -le 10 ']'

+echo 7

7

+a=8

+'[' 8 -le 10 ']'

+echo 8

8

+a=9

+'[' 9 -le 10 ']'

+echo 9

9

+a=10

+'[' 10 -le 10 ']'

+echo 10

10

+a=11

+'[' 11 -le 10 ']'

[root@ghq pub]# cat while.sh

#!/bin/bash

 

a=0

while[ $a -le 10 ]

do

 echo $a

 a=$[$a+1]

done

循环中的中断

[root@ghqpub]# sh for3.sh

1

 

2

 

3

[root@ghq pub]# sh -x for3.sh

++ seq 1 6

+ for i in '`seq 1 6`'

+ echo 1

1

+ '[' 1 -eq 3 ']'

+ echo

 

+ for i in '`seq 1 6`'

+ echo 2

2

+ '[' 2 -eq 3 ']'

+ echo

 

+ for i in '`seq 1 6`'

+ echo 3

3

+ '[' 3 -eq 3 ']'

+ break

[root@ghqpub]# cat for3.sh

#1/bin/bash

 

fori in `seq 1 6`

do

 echo $i

 if [ $i -eq 3 ]

 then

   break

 fi

 

 echo

done

 

[root@ghqpub]# sh for3.sh

1

11

 

1

2

21

22

 

2

3

31

32

33

 

3

4

41

42

43

 

4

5

51

52

53

 

5

6

61

62

63

 

6

[root@ghq pub]# cat for3.sh

#1/bin/bash

 

for i in `seq 1 6`

do

 echo $i

 for j in `seq 1 $i`

 do

 

    echo $i $j

    if [ $j -eq 3 ]

    then

      break

    fi

  done

  echo

  echo $i

done

 

另外在循环里面有 continue(退出当前循环,进行下一次循环)exit(停止循环,并且退出shell)两个特殊命令,用法类似c语言。

和用户交互的命令 read,可以从键盘输入一个数据

[root@ghq pub]# sh read.sh

pleaseenter a number: 3.4

3.4

[root@ghq pub]# cat read.sh

#!/bin/bash

read-p "please enter a number: " a

echo$a

 

判断输入的是不是纯数字?

[root@ghq pub]# cat read2.sh

#!/bin/bash

 

if_number()

{

  b=`echo "$1"|sed's/[0-9]//g'`

  if [ -z $b ]

  then

     echo return 0;

  else

     return 1;

  fi

}

  read -p "pleaseenter a number: " a

if if_number $a

then

  echo ok

else

  echo nook

fi

 

 




 

 

 

 

 

 




https://m.sciencenet.cn/blog-575910-915887.html

上一篇:linux_centos第15次课 shell基础知识 逻辑判断
下一篇:linux_centos第17次课

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-19 06:13

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部