Я плохо знаком с TCL. Как я могу запустить общий tcl скрипт через Windows и Linux? Я хотел бы проверить тип платформы сначала и затем назвать соответствующий tcl proc.
Вы можете начать с просмотра массива tcl_platform. На моей машине (windows) он сообщает следующее:
% parray tcl_platform
tcl_platform(byteOrder) = littleEndian
tcl_platform(machine) = intel
tcl_platform(os) = Windows NT
tcl_platform(osVersion) = 5.1
tcl_platform(platform) = windows
tcl_platform(threaded) = 1
tcl_platform(tip,268) = 1
tcl_platform(tip,280) = 1
tcl_platform(user) = username
tcl_platform(wordSize) = 4
На Unix-системе os и osVersion будут значениями, сообщаемыми uname -s
и uname -r
соответственно. Если вам нужно что-то более сложное, то пакет platform может оказаться подходящим вариантом!
Большинство вещей в Tcl работают одинаково в Windows и Unix; подавляющее большинство деталей, где скрыты различия. Чтобы обработать остальное:
соединение файла
вместо конкатенации с /
между ними. собственное имя файла
, чтобы имена файлов передавались подпроцессам. нагрузкой
; то, что он делает, совсем не переносимо. info
есть некоторые полезные вещи, такие как имя интерпретатора Tcl ( info nameofexecutable
), поэтому вы можете легко и переносимо запускать интерпретаторы в подпроцессах. Есть и некоторые тонкие различия, но вам нужно будет направлять нас в том, что вы делаете со своей программой, чтобы мы могли знать, какие биты имеют значение (например, Windows блокирует исполняемые файлы, когда они работают, а Unix - нет. t; иногда это меняет ситуацию).
Ага, это сработало, Джексон. По сути, я хотел знать, на какой ОС работает мой скрипт, например
set OS [lindex $tcl_platform(os) 0]
if { $OS == "Windows" } {
perform this ...
} else {
perform that ...
}