Код, который вы написали, должен работать; Я не могу определить, почему bash не запускает ulimit -v
. Даже если бы сценарий выполнялся в среде, где это была привилегированная информация (почему !?), все равно можно было бы ожидать получить сообщение об ошибке той или иной формы. Это очень странная проблема!
Базовый набор команд Tcl не предоставляет никакого доступа к ограничениям памяти ни для чтения, ни для записи. Самый простой обходной путь, который не вызывает внешнюю программу, - это пакет tclbsd (очевидно, он в основном работает и в большинстве других Unix), который предоставляет команду, которая должна помочь:
package require BSD
set limit [bsd::rlimit get soft virtual]