linux - 期望脚本中的“无效命令”错误在交互模式下很好

标签 linux shell

我在运行 expect 脚本时遇到问题(这是一个非常新的脚本)。 这是我现在在期望脚本 autorun.exp 中的内容:

#!/usr/bin/expect -f
cd /auto/rmscr/shared_resources/qiuyuguo/softwares/QuEST_2.4
./generate_QuEST_parameters.pl -sam_align_ChIP A.sam -sam_align_RX_noIP \
    B.sam -rp mm10_bychr -ap ./output_directory -ChIP_name name

运行这个脚本后,我得到的是:

[qiuyuguo@hpc-uec 20150605]$ ./auto_run.exp
invalid command name "./generate_QuEST_parameters.pl"
    while executing
"./generate_QuEST_parameters.pl -sam_align_ChIP A.sam -s..."
    (file "./auto_run.exp" line 3)

有趣的是,脚本中的内容在expect的交互模式下运行良好。我可以得到有关正在发生的事情的提示吗?

最佳答案

expect 脚本应该有一个 spawn 命令,一个 expect 命令和一个 send 命令。

这是一个例子:

#!/usr/bin/env expect

spawn su -l test
expect "Password: " {
  send "xxxxx\r"
}
expect "# " {
  send "exit\r"
}
expect eof {
  exit
}

关于linux - 期望脚本中的“无效命令”错误在交互模式下很好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30835826/

相关文章:

linux - 虚拟机-设置centos作为路由器

linux - 我是否达到了人为的 QSqlDatabase 限制?

shell - 如何在 shell 脚本中捕获 SQLPlus 退出代码?

shell - 在 ksh 中使用排版与简单地设置变量有什么区别吗?

linux - 查找 nohup 命令运行的进程

windows - Windows 上的 Linux pthread 可移植性

linux - 网络感知 wx.FileDialog

bash - 为什么我不能在 while 循环中求值?

linux - 使用 Shell 变量替换 Sed 字符串

linux - 内核和 shell 之间的通信