数组复制 expect

变量                                                                                       /* 内存空间 存储单个元素 */

数组                                      /* 连续的内存空间 存储多个元素 */
                                          /* 多个变量的集合 */
数组名
         声明数组                         /* declare -a Ary_Name */

显示所有数组                                                 /* declare -a */

索引
数值索引                                                        /* 从 0 开始 */
稀疏格式

关联索引
bash 4.0后支持                          /* bash –version */

必须先声明 后使用                    /* declare -A Ary_Name */

赋值
全部元素
Ary_Name=()                            /* 生成列表字符串的任意动作 */

Val_1 “Val_2” …                /* “” 作为整体 */
/* a “c d” e */

f{1..3}.{txt,log}

/root/bin/*.sh                   /*glob*/

“ $()
seq 1 # $#                  /* # 间隔 */

eval echo {1..$#}       /*扫描 先将后续变量替换*/

ls /home/wang/bin/*.sh

特定元素
Ary_Name=([0]=”Var1″ [3]=”Var3″…)

一个元素
Ary_Name[#]=”…”

交互式
read -a Ary_Name                      /* a表示数组 */
Var1 Var2 Var3…                       /* echo a b c | read -a s 不行 */

最后追加
Ary_Name[${#Ary_Name[*]}]=”…”

关联数组
declare -A Ary_Nam

Ary_Nam=([Indx_Nam]=”Var1″ [Indx_Nam]=”Var1″…)

引用数组元素
${Ary_Name[Indx]}                         /* echo ${Ary_Name[Indx]} */
${Ary_Name}=${Ary_Name[0]}

${Ary_Name[*]}                               /* 所有元素 */
${Ary_Name[@]}

数组长度                                                                          /* 元素个数 */
${#Ary_Name[*]}
${#Ary_Name[@]}

删除
unset Ary_Name[Indx]                   /* 元素 */
/* 产生稀疏格式 */

unset Ary_Name                               /* 整个数组 */

expect

简介
expect                                                  /* Don Libes */
/* 基于Tcl开发 Tool Command Language */
/* 脚本中 解决 交互式问题 */

tcl语言                                                 /* 模式-动作 */

参数
-d                                                            输出调试信息

-c                                                              命令行

语句
set Var [lindex $argv #]
set 变量赋值
[lindex $argv 0] 位置变量格式

spawn                                                      启动新进程
激活此命令的执行 捕获他的输出

expect                                                       从进程接收字符串

send                                                          向进程发送字符串

exp_continue                                         匹配多个字符串
执行前一个动作后 加此命令

interact                                                    允许用户交互

expect eof                                                自动退出

例子
命令行
单分支
expect -c ‘expect “\n” {send “pressed enter\n”}’
多分枝
expect -c ‘expect “hi” {send “you hi\n”} “xixi” {send “you xixi\n”}’

expect
>
单分支
expect “hi” {send “you hi\n”}

多分支
expect “hi” {send “you hi\n”} \
“xixi” {send “you xixi\n”} \
“hehe” {send “you hehe\n”}

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/102480

赞 (1)
倪潇洒倪潇洒
上一篇 2018-07-08 23:07
下一篇 2018-07-09 00:35

相关推荐

  • 配置ntp时间服务器,任务计划

    手动配置ntp时间服务 centos6 vim /etc/chrony.conf 加入service   172.20.0.1  iburst  保存 ntpdate 172.20.0.1 iburst systemctl enable chronyd 设为开机启动 centos6 chkconfig ntpd on设置开机开启ntp服务 vim  /etc…

    Linux笔记 2018-05-06
  • linux的程序包管理

    随便写写,大佬勿喷

    Linux笔记 2018-04-20
  • vim文本编辑器及文本处理常用命令

    Vim是从 vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

    2018-04-08
  • ansible的使用

    运维自动化发展历程及技术应用 IAAS基础设置即服务,提供硬件服务 PAAS平台即服务,提供操作系统服务 SAAS软件即服务,提供整套服务   ansible的安装 yum -y install ansible ansible –version 查看版本信息   /etc/ansible/ansible.cfg  配置文件 /…

    2018-06-04
  • Docker容器技术之Docker Image

    镜像是Docker容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。

    2018-08-02
  • Nginx认证模块与状态监测模块使用示例

    Nginx认证模块与状态监测模块使用示例 一、环境准备 1. 软件版本 CentOS7.4 httpd-tools.x86_64        2.4.6-67.el7.centos.6 nginx.x86_64                  1:1.12.2-2.el7 2. 软件安装 nginx的安装需要epel源,没有配置epel可以直接yum安装…

    2018-06-29