Как сохранить вывод команды в переменную - PullRequest
1 голос
/ 23 июня 2019

Я пишу скрипт в ожидаемом файле и хочу сохранить вывод команды в переменной.Это возможно?Команда:

echo "text here"| base64

я знаю, что могу установить переменную с помощью "set", но

set var ["echo text here| base64"]

или

set var [ spawn "echo text here| base64"]

не работает.С этим я просто сохраняю строку, а не вывод.

1 Ответ

3 голосов
/ 23 июня 2019

Команда exec возвращает вывод команды. Это позволяет вам установить его в переменную:

set var [exec echo "text here" | base64]

Однако, вы можете избежать echo:

set var [exec base64 << "text here"]

А в Tcl 8.6 вы можете полностью пропустить запуск внешней программы:

set var [binary encode base64 "text here"]

Существует также кодировщик base64 в Tcllib :

package require base64
set var [base64::encode "text here"]
...