У меня тут странная ситуация. Мне нужно запустить exec для сценария getValue.itcl, но я не получаю никаких результатов, если пытаюсь запустить его в строке с перенаправлением ввода. Извините, если я использую неправильные термины.
Использование встроенного кода помогает с другими аспектами этого скрипта, иначе мне пришлось бы разделить его на части. И я использую tcl 8.0 (без вариантов).
Пример: это работает, когда я использую сценарий оболочки, который перезапускается как tclsh.
#!/bin/sh
#
# \
cd 'dirname $0'
# Next line restarts as tclsh \
exec tclsh 'basename $0' $*
proc Main { } {
set val [exec getValue.itcl PARAMETER]
puts "$val"
}
Main
exit
Но если я запущу это по-другому в скрипте, это не сработает.
Это не работает:
#!/bin/sh
#
tclsh << EOSCRIPT
set val [exec getValue.itcl PARAMETER]
puts "$val"
EOSCRIPT
exit 0
Я не получу никакого вывода, я не вижу, в чем разница между использованием tclsh в первом методе и вторым, когда дело доходит до простого выполнения команды.
Спасибо