我试图计算冲突中的一些文件:
let initialConflicts=`git diff --name-only --diff-filter=U | wc -l`问题是:如果没有冲突,git diff的结果是空的,wc -l挂起。它似乎来自于git diff或wc -l中缺少的选项。这个小脚本再现了这个问题:
set -euo pipefail
IFS=$'\n\t'
echo $SHELL
echo "Before counting"
let test=`echo -n "" | wc -l`
echo "After counting"在这里,“计数后”一行不出现。
发布于 2020-10-30 12:03:18
参见let在bash的手册页面:
每个arg是一个要计算的算术表达式.如果最后一个arg的计算结果为0,则let返回1;否则返回0。
正如您已经使用的set -e一样,这会导致脚本退出。既然这里没有计算表达式,只需:
test=`echo -n "" | wc -l`应该行得通。
https://stackoverflow.com/questions/64607927
复制相似问题