随笔分类 - shell
shell
shell86数组变量
摘要:shell默认不支持关联数组,要用declare -A定义,大写a是定义关联数组,小写a是定义普通数组
阅读全文
shell85expect解决交互问题
摘要:spawn:开启一个回话 expect{}:期望出现一个内容,大括号里是期望出现的内容,期望到什么内容,执行什么动作,结束后用一个分号(;) interact:交互,停在那里 exp_continue:没出现内容,继续往后走 expect:脚本解释器
阅读全文
shell82expect实现批量主机密钥推送
摘要:shell与expect结合实使用,expect可以解决交互问题 spawn:启动一个会话 :set list:查看前面是按的是tab键还是空格,此处全是tab键 :set nolist:撤销查看 set timeout 10设置一个延时 判断是否安装except,没有就安装,判断是否存在公钥,没有
阅读全文
shell80set变量
摘要:此处使用的是expect,不是bash set:设置变量 [lindex $argv 0]:argv变量的第一个位置参数,1为第二个位置参数 interact:表示进入交互页面 expect "#":表示读到井号(出现井号表示登录成功)时做什么 expect eof:表示关闭终端
阅读全文
shell79控制多进程的数量
摘要:&8:就指的是文件描述符8 read -u:后面跟文件描述符 read读取描述符8中的内容,开始一个进程,进程结束后又往描述符8中再加一个空格,如此循环往复,可以控制后台进程最大就开启5个 read是读不到就一直在那里读,不罢休 read第一个文件,读的是一行,只要有行(即使是空行)也行,只要读到,
阅读全文
shell77管道
摘要:匿名管道:| 命令管道:named pipe file:查看文件dde的类型 mkfifo:创建命名管道 管道也是个文件,只不过是拿出来或者查看一次后就没有了 管道文件遵循:先进先出,管道文件不是永恒存在的,读完以后就没了 匿名管道不能夸终端,但是命名管道可以夸终端
阅读全文
shell76多进程文件描述符和句柄
摘要:shell放置后台使用的是对进程,而很多人喜欢叫多线程 $$:当前进程号 fd:查看当前进程下的描述符 exec6一行:表示以进程符6打开文件file1 echo一行:表示将echo的内容加到6描述符下的file1文件中 rm一行删除file1后,但是exec打开的依然打开,文件句柄没有释放,cp一
阅读全文
shell73while ping测试脚本
摘要:sleep 1:睡1秒 while是条件为真循环,until是条件为假循环
阅读全文
shell72while读文件创建用户
摘要:从user.txt中读取一行内容赋值给变量user,然后进行操作 while以回车(或者换行)分割 for遇到空行就认为是分隔符空格,while遇到空行,会将空行作为一个变量空值读入 while比for擅长逐行处理文件
阅读全文
shell70批量修改远程主机的ssh配置文件内容
摘要:sed中的c表示替换的意思,为了区分,可以在c后加一个斜线\ :set nu:显示行数
阅读全文
shell68批量创建用户(传多个参数)
摘要:${#line}:变量line的长度 for循环是以空格区分的,遇到一个空格,则空格前的内容为一个for变量,需要以其它分隔符分割,需要重新定义分隔符,用IFS定义分割符
阅读全文