数组复制 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

相关推荐

  • keepalived实现高可用

    实现lLVS的高可用;实现nginx的高可用

    2018-07-11
  • 相信过程-马哥教育

    IT工程师工作和学习都是比较枯燥的,过于目标化忽略了过程本身并不适合我,如果我来这里能使我全心全意投入到一段学习当中,我觉得来这里目标就达到了。其他的事情自然会水到渠成。 大家共勉!

    2018-07-21
  • MYSQL数据库基本使用

    MYSQL数据库基本使用

    2018-06-08
  • Linux运维初步—第三周

    Linux运维初步—第三周总结与练习 标签(空格分隔): linux入门 linux 运维 — 写作:N27_loong 2017-7-27[TOC] 一、本周主要内容回顾: 用户(组)管理: – 增加用户或组,指定用户权限、家目录路径、用户属组属主的变更; – 用户密码和组密码加密和验证的设计和文件存储位置;…

    Linux笔记 2018-07-27
  • boot

    把boot目录都删除了怎么办 文件的 关键 缺少 唯独缺少 grub.conf     ;创建这个文件 以上是boot下文件都删除了的补救法 下面是第二种方法 光盘启动,救援模式   ,用安装包的方式 不能安装在当前的跟下 grub-install安装grub相关信息 写 以上是boot是独立分区

    2018-05-13
  • linux磁盘的利用

    RAID简介 RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小而廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损 。 硬盘是个很脆弱的东西,它经常会坏掉。为了保证服务器可靠耐用,硬盘必须时时刻刻保持可用。由于RAID的出现,它的目的…

    Linux笔记 2018-04-29