(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循环语法格式

    for  var  in (表达式)

    do

            语句

    done


(3) 用for循环打印1到100

    for i   in  `seq 1 100`

    do

        echo $i

    done


 注释: 单引号和双引号只适用于变量引用,涉及到计算,不能用单引号和双引号

  

拓展

     用for循环打印1到100另外二种写法

  for  i   in  $(seq 1 100)

  do

     echo $i

  done


  for i  in  `echo  {1..100}`

  do

     echo $i

  done

 注释: echo后面不要忘记加空格,不加空格,会报错


(4) 用for循环读取文件内容,并打印到屏幕上

 for i  in  `cat list.txt`

 do

     echo $i

done


(5) 用for循环批量到远程主机执行命令

  command="$*"

  for  i   in   `seq 1 100`

  do

     ssh -l  root  192.168.1.$i  "$command"

  done


(6)用for循环批量到远程主机传输文件

 files="$*"

  for  i   in  `seq 1 100`

 do

  scp -r $files root@192.168.1.$i:/tmp

done


(7)用for循环输出1到100的和

 j=0

for i  in  `seq 1 100`

do

   j=`expr $i+$j`

done

echo $j


(8) while循环格式

  while  (表达式)

  do

      语句

 done


(9) 用while循环读取文件列表内容,并把结果打印在屏幕上

 while read line

 do

      echo $line

 done<list.txt


(10) 用while循环,每隔一秒在屏幕上输出hello  word

  while  sleep 1

  do

      echo "hello word"

  done


(11) 用while循环,打印1到100

  i=0

 while(i<=100)

 do

     echo $i

      i=`expr $i+1`

 done


(12) while循环打印1到100的和

  j=0

  i=1

  while(i<=100)

  do

       j=`expr $i+$j`

       ((i++))

 done

  echo $j 


拓展: ssh免秘钥登录到远程服务器

  (1) 在本机上创建ssh-keygen


  (2) 拷贝公共秘钥到“被登录机”,输入密码

     ssh -l  root   192.168.1.5  id_rsa.pub


  (3)  ssh到“被登录机”把公共秘钥输入到“authorized _keys”(如果有多个机器都需要使用rsa秘钥认证登录到此机的话,把产生的公共秘钥输入到authorized_keys)

     cat   id_rsa.pub  >>  authorized_keys