Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 依次运行预期生成的命令_Bash_Shell_Expect - Fatal编程技术网

Bash 依次运行预期生成的命令

Bash 依次运行预期生成的命令,bash,shell,expect,Bash,Shell,Expect,我已经编写了一个expect脚本,我正在从bash脚本中调用它,它删除目录中的内容,复制jar并提取它。我正在通过如下所示的expect脚本执行此操作: 我在这个过程中使用了睡眠和等待,但没有任何帮助。我没有得到预期的输出。请检查脚本是否相当简单,它删除目录中的内容,创建一个,添加jar并尝试提取它 set timeout -1 set PASS [lindex $argv 0]; set DIRECTORY [lindex $argv 1]; set FOLDER_NAME [lindex $

我已经编写了一个expect脚本,我正在从bash脚本中调用它,它删除目录中的内容,复制jar并提取它。我正在通过如下所示的expect脚本执行此操作:

我在这个过程中使用了睡眠和等待,但没有任何帮助。我没有得到预期的输出。请检查脚本是否相当简单,它删除目录中的内容,创建一个,添加jar并尝试提取它

set timeout -1
set PASS [lindex $argv 0];
set DIRECTORY [lindex $argv 1];
set FOLDER_NAME [lindex $argv 2];
set WAR_PATH [lindex $argv 3];
set WAR_NAME [lindex $argv 4];
spawn sudo rm -rf $DIRECTORY/$FOLDER_NAME
expect "Password:"
send $PASS\r
spawn sudo mkdir $DIRECTORY/$FOLDER_NAME
expect "Password:"
send $PASS\r
spawn sudo cp $WAR_PATH $DIRECTORY/$FOLDER_NAME
expect "Password:"
send $PASS\r
spawn sudo jar -xf $DIRECTORY/$FOLDER_NAME/$WAR_NAME
expect "Password:"
send $PASS\r
set timeout -1
expect eof
exit 0


请帮助我,使这个过程一个接一个地完成,没有任何问题。感谢您的帮助。

每次
发送$PASS\r
后,您应该
期望eof
等待生成的过程完成。

感谢您的解释。