加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 09:10:43 所属栏目:安全 来源:网络整理
导读:(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

(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,打印出变量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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读