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

相关推荐

  • iptables及sudo简介

    iptables及sudo简介

    2018-05-24
  • 学习笔记(16)

    学习笔记

    Linux笔记 2018-05-06
  • liunx 基础

    时间和日期:

    Linux笔记 2018-04-01
  • 磁盘相关概念

    这场易碎的雨季 用节奏轻快的鼓点 在敲打过去

    2018-06-26
  • RAID

    RAID技术 stripe:条带。将连续的数据切分成相同大小的数据块,把每段数据块分别写入到不同磁盘上的方法。 条带技术可以增加硬盘的读写性能,但是不支持数据容错。最少使用2块盘做条带。磁盘利用率为100% mirror:镜像。镜像技术是将n(2的倍数)块磁盘上的每个数据位同步成相同的数据位。在写数据时,写入2 份数据。镜像技术有容错功能,但是硬盘的写性能有…

    Linux笔记 2018-04-25
  • Centos6.9下同时删除/boot下所有文件、/sbin/init文件和/etc/fstab文件的修复方法

    模拟损坏把上述的文件全部删除,启动界面如图所示 重启设置光盘引导后重启 选择第三项 选择ok 选择ok 选择no,不配置网络 选择继续 选择ok 选择ok df查看分区挂载情况,由于/etc/fstab文件被删除,所以看不到根的挂载,使用fdisk –l可以看到分区情况 可以看到一共有五个分区,其中第一个带*表示是启动分区,第四个是扩展分区,第五个是swap…

    2018-05-13