用Shell编写for循环和while循环案例
2017-12-11 18:59
309 查看
(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
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
相关文章推荐
- shell for while 循环用来一行一行读取文件内容
- Shell中的for和while循环详细总结
- Shell中的for和while循环详细总结
- shell 编程之 for while until 循环
- Shell for&while 循环详细总结
- tar ,cpio打包解压. shell脚本for,while,until循环. rpm包管理,select循环菜单,函数function,yum
- if/switch/while/do while/for/等循环及判断的简要用法案例
- Shell脚本中循环语句for,while,until用法
- Shell脚本中循环语句for,while,until用法
- shell 中的for、while循环及if语句
- shell for&while循环
- shell之for、while循环
- shell 中的for循环和while循环
- Shell中的循环语句for、while、until实例讲解
- 一文读懂Shell脚本中循环语句for,while,until用法
- Shell for&while 循环详细总结
- shell脚本学习9——循环指令:for、while、until
- Shell中的循环语句总结(for, while, until)
- Shell for&while 循环详细总结
- Shell for&while 循环详细总结