主脚本test.sh

#!/bin/bash

# 设置超时时间

set timeout 240

# 将 Excel 文件转换为 CSV 格式

# test.xlsx > temp.csv

# 初始化一个二维数组

declare -A data

# 逐行读取 CSV 文件,并将每个单元格的数据存储在二维数组中

row=1

while IFS=, read -r col1 col2 col3 col4 col5 col6 col7; do

data[$row,1]=$col1

data[$row,2]=$col2

data[$row,3]=$col3

data[$row,4]=$col4

data[$row,5]=$col5

data[$row,6]=$col6

data[$row,7]=$col7

((row++))

done < test.csv

echo $row

# 打印二维数组的内容(仅作示例,您可以根据需要进行其他操作)

index=2

echo $index

num=$row-1

echo $num

while(($index<=$num))

do

echo "Row $index: ${data[$index,1]}, ${data[$index,2]}, ${data[$index,3]}, ${data[$index,4]}, ${data[$index,5]}, ${data[$index,6]}, ${data[$index,7]}"

# 运行希望自动化的脚本并等待特定提示

expect child.sh ${data[$index,1]} ${data[$index,2]} ${data[$index,3]} ${data[$index,4]} ${data[$index,5]} ${data[$index,6]} ${data[$index,7]}

((index++))

done

子脚本

#!/usr/bin/expect -f

#!/bin/bash

# 输出参数的数量

puts "Number of arguments: $argc"

# 输出所有的参数

puts "Arguments: $argv"

# 输出单独的参数

puts "First argument: [lindex $argv 0]"

puts "Second argument: [lindex $argv 1]"

puts "Third argument: [lindex $argv 2]"

set myhost [lindex $argv 1]

set myport [lindex $argv 2]

set myuser [lindex $argv 3]

set mypassword [lindex $argv 4]

set myproname [lindex $argv 5]

spawn ./ProjectCreator.out

expect {

"Please choose the database type(请输入数据库类型0-PostgreSQL/1-MySQL):" { send "[lindex $argv 0]\r"; exp_continue}

"Please input IP of the database(请输入数据库IP):" { send "[lindex $argv 1]\r"; exp_continue}

"Please input port of the database(请输入数据库端口):" { send "[lindex $argv 2]\r"; exp_continue }

"Please input username of the database(请输入数据库用户名):" { send "[lindex $argv 3]\r"; exp_continue}

"Please input the password of the database(请输入数据库密码):" { send "[lindex $argv 4]\r"; exp_continue}

"Please input the project name(请输入项目名称):" { send "[lindex $argv 5]\r"; exp_continue}

"Please choose the project language(请选择语言类型0-中文/1-English):" { send "[lindex $argv 6]\r"; exp_continue}}

#继续留在命令行执行过程

interact

sleep 180

推荐链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。