ameimeng 发表于 2018-8-19 06:58:20

用Shell编写for循环和while循环案例

  (1)Shell中的单引号和双引号区别
  A="www.jfedu.net"
  B='$A'
  echo $B
  注释:
  把www.jfedu.net赋值给变量A, 把变量A的内容赋值给变量B,打印出变量B的结果,打印出的结果为$A
  因为变量A是一个弱引用,引用的结果只是一个字符
  A="www.jfedu.net"
  B="$A"
  echo $B
  注释:
  把www.jfedu.net赋值给变量A, 把变量A的内容赋值给变量B,打印出变量B的结果,打印出的结果为www.jfedu.net
  因为变量A是一个强引用,变量B的引用结果是www.jfedu.net,而不是一个字符
  (2)for循环语法格式
  forvarin (表达式)
  do
  语句
  done
  (3) 用for循环打印1到100
  for i   in`seq 1 100`
  do
  echo $i
  done
  注释: 单引号和双引号只适用于变量引用,涉及到计算,不能用单引号和双引号
  拓展
  用for循环打印1到100另外二种写法
  fori   in$(seq 1 100)
  do
  echo $i
  done
  for iin`echo{1..100}`
  do
  echo $i
  done
  注释: echo后面不要忘记加空格,不加空格,会报错
  (4) 用for循环读取文件内容,并打印到屏幕上
  for iin`cat list.txt`
  do
  echo $i
  done
  (5) 用for循环批量到远程主机执行命令
  command="$*"
  fori   in   `seq 1 100`
  do
  ssh -lroot192.168.1.$i"$command"
  done
  (6)用for循环批量到远程主机传输文件
  files="$*"
  fori   in`seq 1 100`
  do
  scp -r $files root@192.168.1.$i:/tmp
  done
  (7)用for循环输出1到100的和
  j=0
  for iin`seq 1 100`
  do
  j=`expr $i+$j`
  done
  echo $j
  (8) while循环格式
  while(表达式)
  do
  语句
  done
  (9) 用while循环读取文件列表内容,并把结果打印在屏幕上
  while read line
  do
  echo $line
  doneauthorized_keys

页: [1]
查看完整版本: 用Shell编写for循环和while循环案例