我在文件中有一个 git 提交列表.txt
,我想迭代这些提交。对于每个COMMIT_ID
我想使用git
退出代码为0
或 的命令检查它们1
。
取决于我想要的结果echo
true
或false
。
但运行脚本时,我收到此错误:
line 5: [: 0: unary operator expected
脚本如下:
#!/usr/bin/env bash
input="./commits.txt"
while IFS= read -r COMMIT_ID
do
if [ 0 -eq $(git merge-base --is-ancestor $COMMIT_ID HEAD) ];
then
echo "true";
else
echo "false";
fi
done < "$input"
答案1
$()
替换为给定命令的输出,而不是其退出代码。要使用退出代码,请直接使用以下命令if
:
if git merge-base --is-ancestor "$COMMIT_ID" HEAD; then