Я хотел бы экспортировать переменную в зависимости от результата двоичной команды. Мой TCL скрипт это:Запуск внешней программы из сценария Tcl
set A ""
exec sh -c "export A=\"`/usr/local/cuda/samples/1_Utilities/deviceQuery/deviceQuery -noprompt | grep ^Device | wc -l`\""
puts $A
if { $A == "1" } {
set CUDA_VISIBLES_DEVICES 0
} else {
set CUDA_VISIBLES_DEVICES 1
}
С помощью этого скрипта, когда я исполняю puts $A
я не получаю ничего в терминале ... так в if
команды я не знаю, что я оценка ... My " экспорт "должен возвращаться ТОЛЬКО 1 или 0 ...
Извините за мой плохой уровень TCL.
Спасибо.
Вы не можете изменить переменные среды родительского процесса из дочернего процесса. – keltar
Но я создаю A и CUDA_VISIBLES_DEVICES в сценарии TCL как новые переменные среды ... Я думаю. –
New - это только одна из форм изменения. Но, возможно, я не понимаю, что должен означать ваш «экспорт». Просьба уточнить. – keltar