bash回音字符串>&燃气轮机;文件不工作
我写了以下脚本: for filename in `find . -name '*'.cpp | grep $IN_REGEX | grep -v $OUT_REGEX` do echo "Output file is $OUTPUT_FILE" count=`git log --pretty=format: --name-only $filename | grep -v ^$ | wc -l` echo "$count $filename" >> $OUTPUT_FILE done 查找中的文件名-名称“*”.cpp | grep$IN_REGEX | grep-v$OUT_REGEX` 做 echo“输出文件是$Output\u文件” count=`git log--pretty=format:--name only$filename | grep-v^$| wc-l` 回显“$count$filename”>>$OUTPUT\u文件 完成 但输出文件中不会写入任何内容 请注意:bash回音字符串>&燃气轮机;文件不工作,bash,echo,io-redirection,Bash,Echo,Io Redirection,我写了以下脚本: for filename in `find . -name '*'.cpp | grep $IN_REGEX | grep -v $OUT_REGEX` do echo "Output file is $OUTPUT_FILE" count=`git log --pretty=format: --name-only $filename | grep -v ^$ | wc -l` echo "$count $filename" >> $OUTPUT_
for filename in `find . -name '*'.cpp
是一个
(文件名中的空格中断)
你应该改为:
while IFS= read -r file; do
echo "Output file is $OUTPUT_FILE"
count=$(git log --pretty=format: --name-only "$file" | grep -v '^$' | wc -l)
echo "$count $file" >> "$OUTPUT_FILE"
done < <(find . -name '*.cpp' | grep "$IN_REGEX" | grep -v "$OUT_REGEX")
而IFS=read-r文件;做
echo“输出文件是$Output\u文件”
count=$(git log--pretty=format:--name only“$file”| grep-v'^$'| wc-l)
回显“$count$file”>>“$OUTPUT\u file”
完成<什么是IN_REGEX和OUT_REGEX?查找文件名的-名称“*”.cpp
print?它们是限制文件列表的正则表达式。您运行的是舒尔bash
?这是zsh
和其他一些shell中的一个功能,但不是bash
。是的。这是狂欢节。我也有一个沙邦。另外,你能告诉我你在说什么功能吗?我在说set-C
。在bash
中,仅当文件存在时才禁止
。在zsh
中,如果文件不存在,它也将禁止>
。我同意你的观点。但是我知道任何文件名中都没有空格。/gitlog.sh:28行:意外标记附近的语法错误usebash
,而不是sh
=)@sputnick:或者编写不必要的bash
特定的代码。sputnick,你知道“不必要”是什么意思吗?