Почему при использовании для сохранения результатов команды обратные галочки вызывают ошибку EOF? - PullRequest
1 голос
/ 17 июня 2019

Я перебираю список открытых файлов, чтобы увидеть, не является ли текст «Слияние <-» частью вывода <a href="https://www.ibm.com/support/knowledgecenter/en/SSSH27_9.0.1/com.ibm.rational.clearcase.cc_ref.doc/topics/ct_describe.htm" rel="nofollow noreferrer">ct describe.

Я попытался запуститьЦикл while в этом списке файлов с прозрачным регистром и добавление его в другой файл, если он удовлетворяет моему желаемому условию.Ниже приведена точная логика, которую я использовал:

16 FILTER_LIST=cut -f1 -d'@' branchmerge_versions.txt
17 touch temp.txt
18 echo $FILTER_LIST > temp.txt
19 
20 while read t; do
21    isMerged=`cleartool describe t | grep -e "Merge <-"`
22   if [[ "x$isMerged" == "x" ]]; then
23          echo "$t" >> filesToMerge.txt
24   fi
25 done < temp.txt
26

Выполнение bash -n в скрипте вернуло эти ошибки:

filter.sh: line 21: unexpected EOF while looking for matching ``'
filter.sh: line 26: syntax error: unexpected end of file

Почему команды возвращаются назад?неожиданная ошибка EOF?

1 Ответ

1 голос
/ 18 июня 2019

Как я объяснил в " В чем разница между $(command) и` command`` в программировании оболочки?"

встроенные подстановки команд и / или использование двойных кавычек требуют осторожного экранирования с символом обратной косой черты.
Мы предпочитаем $ (...)

В вашем случае попробуйте с

isMerged=$(cleartool describe t | grep -e "Merge <-")

Но, как прокомментировано, сначала проверьте содержимое вашего входного файла temp.txt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...