通过 tcl 脚本从 bash 脚本执行一组命令
Executing a set of commands from a bash script through a tcl script
我正在尝试通过我的 tcl 脚本执行 bash 脚本中指定的一组命令。我是 tcl 的新手,所以我找不到这样做的方法,我也查阅了很多堆栈溢出链接,所以我现在知道如何从 tcl 脚本执行单个命令。
现在我正在使用它来执行单个命令 -
exec /usr/bin/sshpass ssh -o StrictHostKeyChecking=no $command
但是如何确保脚本一次从 bash 脚本中读取一个命令并为每个命令执行上述命令?
sharad@ss:~$ cat commands.txt
date
uname -m
sharad@ss:~$
sharad@ss:~$ cat my.tcl
set fileHandle [open commands.txt]
set commands [read $fileHandle]
close $fileHandle
foreach command [split $commands "\n"] {
set command [string trim $command]
if {$command == ""} {
continue
}
puts "command=$command,result=[exec ssh sharad@localhost bash -c $command]"
}
sharad@ss:~$
sharad@ss:~$ tclsh my.tcl
command=date,result=Tue Apr 12 02:47:28 EDT 2016
command=uname -m,result=Linux
sharad@ss:~$
我正在尝试通过我的 tcl 脚本执行 bash 脚本中指定的一组命令。我是 tcl 的新手,所以我找不到这样做的方法,我也查阅了很多堆栈溢出链接,所以我现在知道如何从 tcl 脚本执行单个命令。
现在我正在使用它来执行单个命令 -
exec /usr/bin/sshpass ssh -o StrictHostKeyChecking=no $command
但是如何确保脚本一次从 bash 脚本中读取一个命令并为每个命令执行上述命令?
sharad@ss:~$ cat commands.txt
date
uname -m
sharad@ss:~$
sharad@ss:~$ cat my.tcl
set fileHandle [open commands.txt]
set commands [read $fileHandle]
close $fileHandle
foreach command [split $commands "\n"] {
set command [string trim $command]
if {$command == ""} {
continue
}
puts "command=$command,result=[exec ssh sharad@localhost bash -c $command]"
}
sharad@ss:~$
sharad@ss:~$ tclsh my.tcl
command=date,result=Tue Apr 12 02:47:28 EDT 2016
command=uname -m,result=Linux
sharad@ss:~$