Распечатать предупреждение, если ничего не найдено, используя glob - TCL - PullRequest
0 голосов
/ 09 июля 2020

Мой сценарий такой, как показано ниже. Я хотел бы распечатать предупреждение, если я не могу найти что-либо из каталога.

Как мне распечатать предупреждение в foreach l oop, если он не может найти ни одного файла, который соответствует $ food и $ комбинация игрушек?

foreach value $list {

set file1 [ open "$food/$toys/abc.txt"]

set list1 [glob -nocomplain -type f /a/$food/$toys/*]
puts $file1 [join $list1 \n]

close $file1

}

1 Ответ

1 голос
/ 10 июля 2020

Вы также хотели бы перехватывать ошибки из open (кстати, вам нужно открыть файл для записи, чего вы не делаете), а не только glob.

Что-то вроде :

# You don't use value in your posted code. Typo or something?
foreach value $list {
    try {
        set list1 [glob -type f "/a/$food/$toys/*"]
        set file1 [open "$food/$toys/abc.txt" w]
        puts $file1 [join $list1 \n]
        close $file1
    } on error {msg} {
        puts stderr "Error while processing '$value': $msg"
    }
}

будет обрабатывать оба случая и любые другие ошибки, которые могут возникнуть.

...