如何将单独的参数传递给expect脚本?

时间:2014-02-26 12:02:15

标签: bash arguments expect

我有一个expect脚本,它执行作为参数给出的命令:

!/usr/bin/expect
spawn telnet ip
for {set i 0} {$i < $argc} {incr i 1} {
  set cmd [lindex $argv $i] 
  send "$cmd\n"
}

我可以用我想在远程设备上执行的任何命令来调用它,例如my_expect_script "cd /home" "ls" "mkdir mydir"。我希望默认情况下在此脚本之前执行某些操作。我的想法是编写另一个这样的脚本:

#!/bin/bash
do-something
my_expect_script "$*"

现在,如果我这样做,my_expect_script似乎只得到一个参数。在我的例子中,只会执行cd部分 是否有一种简单的方法可以将参数作为单独的参数传递但是立即传递?

1 个答案:

答案 0 :(得分:1)

刚刚找到解决方案here。我必须按如下方式调整第二个脚本:

#!/bin/bash
do-something
my_expect_script "$@"

我一直认为$*$@完全一样。