从 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
}
}
}
我正在尝试 运行 来自 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
}
}
}