再问一个参数引用的问题,谢谢各位

sh/bash/dash/ksh/zsh等Shell脚本
回复
kingofnet
帖子: 15
注册时间: 2010-01-06 14:21

再问一个参数引用的问题,谢谢各位

#1

帖子 kingofnet » 2010-01-07 14:06

代码: 全选

#!/tools/bin/expect
set cmd [lindex $argv 0];
for { set i 1} {$i < $argc} { incr i} {append cmd " [lindex $argv $i]"}

puts $cmd
spawn $cmd
interact;
然后运行
【】# ./t.exp scp /home/kernel-xen-devel* 10.204.176.23:/home
系统输出
scp /home/kernel-xen-devel-2.6.18-164.9.1.el5.i686.rpm 10.204.176.23:/home
spawn scp /home/kernel-xen-devel-2.6.18-164.9.1.el5.i686.rpm 10.204.176.23:/home
couldn't execute "scp /home/kernel-xen-devel-2.6.18-164.9.1.el5.i686.rpm 10.204.176.23:/home": no such file or directory
while executing
"spawn $cmd"
(file "./t.exp" line 6)
而我如果这样写就没有问题

代码: 全选

set cmd1 [lindex $argv 0]
set userd1 [lindex $argv 1]
set userd2 [lindex $argv 2]

if ($argc==2) {
spawn $cmd1 $userd1
}
if ($argc==3) {
spawn $cmd1 $userd1 $userd2
}

这是什么原因?
MaskRay
帖子: 61
注册时间: 2010-04-29 22:00
系统: Gentoo Linux ~amd64
联系:

Re: 再问一个参数引用的问题,谢谢各位

#2

帖子 MaskRay » 2011-05-13 12:23

用 eval spawn $cmd

spawn $cmd 的话,会把 $cmd 整个当作一个程序
回复