我试图从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
}
}
}
答案 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
}
}
}