从 Tcl 执行 shell 脚本

Executing shell script from Tcl

我正在尝试 运行 来自 TCL 的 shell 脚本。我遇到了一些麻烦,因为它不工作或给我一个错误来进行故障排除。我很确定我的问题是因为没有正确格式化 "run"。感谢任何帮助。

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
    }
  }
}

最终删除了 运行 变量并直接添加了它。现在工作正常。

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
    }
  }
}