从Tcl执行shell脚本

时间:2015-10-03 08:07:05

标签: tcl

我试图从TCL运行shell脚本。我遇到了一些麻烦,因为它没有工作或者给我一个错误来排除故障。我很确定我的问题来自没有"运行"格式正确。任何帮助表示赞赏。

set run "sshpass -p 'password' ssh user@ip 'bash -s' <"
set sh "test.sh"
set cmd [list $run $sh $arg1 $arg2]

if {[catch {eval [linsert $cmd 0 "exec"]} status]} {
  foreach line [split $status "\n"] {
    if {[string match *text* $line]} {
       //do something
    }
  }
}

1 个答案:

答案 0 :(得分:2)

结束删除运行变量并直接添加它。现在工作正常。

set sh "test.sh"
set cmd [list sshpass -p 'password' ssh user@ip 'bash -s' \< $sh $arg1 $arg2]

if {[catch {eval [linsert $cmd 0 "exec"]} status]} {
  foreach line [split $status "\n"] {
    if {[string match *text* $line]} {
       //do something
    }
  }
}