数组复制 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
下一篇 2018-07-09

相关推荐