Открыть файл в Tcl с переменными внутри - PullRequest
1 голос
/ 13 апреля 2020

Я хочу открыть файл с именем filelist.txt, который содержит только строку ${PATHFILE}/test.txt, прочитать строку и открыть файл test.txt. Файл test.txt находится внутри папки ~/testfile.
. Рассмотрим пример кода:

#!/usr/bin/env tclsh

set PATHFILE "~/testfile"

set fp [open "filelist.txt" r]
set lines [split [read $fp] "\n"]
close $fp   

foreach line $lines {
    set fp1 [open $line r]
    close $fp1
}

Проблема заключается в том, что команда open не может найти переменную PATHFILE и я получаю эту ошибку:

couldn't open "${PATHFILE}/test.txt": no such file or directory

Если я пытаюсь открыть файл с set fp1 [open "${PATHFILE}/test.txt" r], у меня нет ошибок.

1 Ответ

1 голос
/ 13 апреля 2020

Да, вы можете использовать команду substl *1001* для оценки переменной PATHFILE. Обратите внимание, что у вас все еще может быть проблема с тильдой ~ - может быть лучше использовать полные пути.

#!/usr/bin/env tclsh

set PATHFILE "~/testfile"

set fp [open "filelist.txt" r]
set lines [split [read $fp] "\n"]
close $fp   

foreach line $lines {
    set fp1 [open [subst $line] r]
    close $fp1
}
...