变量 /* 内存空间 存储单个元素 */
数组 /* 连续的内存空间 存储多个元素 */ /* 多个变量的集合 */
数组名 声明数组 /* 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