Сценарий Bash, выполняющий команду ViM, по-видимому, не интерпретирует команду «$»

Проблема в том, что одинарные кавычки не являются особыми для tcl, поэтому вы на самом деле запускаете команду grepс аргументом '\.foo', включая кавычки, которые обычно должны быть удалены оболочкой.

Это приводит к тому, что grepне соответствует, поэтому он завершается с кодом ошибки, отличным от -нулевым, и поэтому команда execпередает ошибку.

Немедленный ответ — использовать tclдвойные -кавычки(grep -E "\\.foo")или без кавычек(grep -E \\.foo)или фигурные -кавычки(grep -E {\.foo}). Но альтернатива — не прибегать к командам оболочки. Эквивалентом в tclможет быть:

set fullfiles [glob *.foo]
foreach f $fullfiles { lappend files [string trimright $f.foo] }
0
11.06.2021, 17:11
1 ответ

Я не понимаю, почему, но редактирование файла непосредственно в ViM обрабатывало его как файл Unix, но редактирование через -документ рассматривало его как файл DOS. Однако я нашел очень удобный инструмент, который решил проблему

.
`yum install dos2unix`
dos2unix./filename.txt

Похоже, это делает файл совместимым со стандартами файлов Unix

0
28.07.2021, 11:25

Теги

Похожие вопросы