Есть два пути. Либо вы экспортируете переменную (есть несколько способов сделать это), либо вы назначаете ее как часть вызова для tclsh
. Использование export
:
export B="b"
echo 'puts "the B environment variable is $::env(B)"' | tclsh
B="b"
export B
echo 'puts "the B environment variable is $::env(B)"' | tclsh
Назначение как часть вызова (NB: без точек с запятой , а присвоение переменной близко к фактическому вызову tclsh
):
echo 'puts "the B environment variable is $::env(B)"' | B="b" tclsh
Для чего-либо сложного или большого, старайтесь избегать передачи его через переменные окружения (или аргументы командной строки). Использование файлов работает лучше в этих случаях. Для чего-либо секрет НЕ ИСПОЛЬЗУЙТЕ либо аргументы командной строки или переменные среды , так как ни один из них не является безопасным механизмом связи, кроме файлов (с соответствующими разрешениями, в том числе для содержащий каталог) достаточно безопасны.