Shell学习15天(for循环)- 05day

(一) for 循环空行的秘密

            for循环本身后面的变量是以空格或者tab分割的,如果是空行,就会忽略空行把空行当成一个空格。反正for循环根本就不会理睬空行。视若无睹。就算指定了for循环按照回车分割,也不会理睬空行。

(二) for循环语法结构

Shell学习15天(for循环)- 05day

实例一: for循环批量主机ping 深测.

以下代码其实很简单,但是有一个地方需要特别说明,以前没有这样使用过.

1: 将for循环里面的代码加入后台执行 {}&   这样多个循环可以同时执行.

2: 如果不加wait命令,那么echo语句既有可能在前面语句没有完成的时候就开始执行了.wait命令的功能就是 等待前面所有后台进程执行完成.注意是后台进程哈.后台后台!!!

Shell学习15天(for循环)- 05day

实列二: for循环批量添加用户以及修改新增用户密码

以下代码其实也很简单,只是有一个地方需要注意的是,for循环默认的变量分分隔符是空格或者tab,那么以下 for line in `cat user1.txt`中的line,就不是我们希望的那样一行一行的赋值给line了,而是一个一个地赋值给line,所以下面awk截取变量其实只有$1,只有user,没有pass. 为了解决这个问题我们可以重新定义for循环的变量分割符.有截图里面的两种方法.

user1.txt的内容:

Shell学习15天(for循环)- 05day

Shell学习15天(for循环)- 05day

实例三: for循环批量推送公钥:

Shell学习15天(for循环)- 05day

实例四: for循环实现批量主机ssh配置修改

Shell学习15天(for循环)- 05day