jane27 发表于 2018-8-30 06:20:45

第八章 shell学习之循环和结构化命令

  for循环
  1.
  列表for循环
  for variable in {list}#有些像C++/CLR中的for each
  do
  ...
  done
  如:
  1.
  # cat b.sh
  #! /bin/bash
  for i in 1 2 3 4 5      #1 2 3 4 5等价于{1..5}
  do
  echo $i
  done
  # ./b.sh
  1
  2
  3
  4
  5
  2.
  # cat b.sh
  #! /bin/bash
  for i in $(seq 1 2 6)   #从1增加到6,步幅为2,相当于`seq 1 2 6`
  do
  echo $i
  done
  # ./b.sh
  1
  3
  5
  3.
  # cat b.sh
  #! /bin/bash
  for i in $( ls )   #用命令ls的内容替换$( ls )
  do
  echo $i
  done
  # ./b.sh
  1c
  a
  a1
  a1~
  ...
  4.
  # cat b.sh
  #! /bin/bash
  for i in "$*"   #把输入的所有参数看做一个字符串整体
  do
  echo $i
  done
  # vim b.sh
  # ./b.sh 1 2 3
  1 2 3
  # cat b.sh
  #! /bin/bash
  for i in "$@"#把输入的参数分开看待
  do
  echo $i
  done
  # ./b.sh 1 2 3
  1
  2
  3
  2.
  不带列表的for循环
  for variable
  do
  ...
  done
  相当于
  for variable in "$@"
  do
  ...
  done
  3.
  类C风格的for循环
  for((expr1;expr2;expr3))
  do
  ...
  done
  如:
  for((i=1;i
页: [1]
查看完整版本: 第八章 shell学习之循环和结构化命令