«open | $ filex» не может выполнить существующий файл только на windows - PullRequest
0 голосов
/ 20 февраля 2020

Код ниже:

set filex "./run.sh"

if {[file exist $filex]} {
    puts "File exist!"
}

if {[catch {open |$filex r} pipe]} {
    puts "pwd = [pwd]"
    puts "ERROR: $pipe"
}

возвращает следующее сообщение:

Файл существует!
pwd = F: /
ОШИБКА: не удалось выполнить ". \ run. sh ": нет такого файла или каталога

Проблема отсутствует в linux ОС (скрипт обычно запускается), появляется только в Windows (также в CygWin). Права доступа к файлу: 777. Какой универсальный обходной путь для обеих ОС?

1 Ответ

0 голосов
/ 24 февраля 2020

Я нашел решение этой проблемы, добавив bash после '|' символ:

if {[catch {open "|bash $filex" r} pipe]} {
...