我正在遍历一堆透明文件,以查看文本“合并<-”是否不属于ct describe
的输出。
我已经尝试过在这一系列的case文件上运行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错误?
答案 0 :(得分:1)
如我在“ What is the difference between $(command)
and `command`` in shell programming?”中所述
嵌入式命令替换和/或双引号的使用要求使用反斜杠字符进行仔细的转义。
我们更喜欢$(...)
根据您的情况,尝试使用
isMerged=$(cleartool describe t | grep -e "Merge <-")
但是,如前所述,首先检查输入文件temp.txt
的内容。