我有一个expect
脚本,可以执行作为参数给出的命令,如下所示:
!/usr/bin/expect
spawn telnet ip
for {set i 0} {$i < $argc} {incr i 1} {
set cmd [lindex $argv $i]
send "$cmdn"
}
我可以使用我想在远程设备上执行的任何命令来调用它,例如 my_expect_script "cd /home" "ls" "mkdir mydir"
.默认情况下,我想在此脚本之前执行一些操作。我的想法是写另一个这样的脚本:
#!/bin/bash
do-something
my_expect_script "$*"
现在,如果我这样做,my_expect_script
似乎只有一个论点。在我的示例中,只会执行cd
部分。
有没有一种简单的方法可以将参数作为单独的参数同时传递?
刚刚在这里找到了解决方案。我必须将第二个脚本改编如下:
#!/bin/bash
do-something
my_expect_script "$@"
我一直认为$*
和$@
做的完全一样。