Ale*_*ler 3 bash git shell-script test exit-status
我在一个.txt文件中有一个 git 提交列表,我想遍历这些提交。对于每个COMMIT_ID我想使用git退出代码为0or的命令检查它们1。
根据我想要的结果echo true或false.
但是在运行脚本时,我收到此错误:
line 5: [: 0: unary operator expected
Run Code Online (Sandbox Code Playgroud)
脚本如下:
#!/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"
Run Code Online (Sandbox Code Playgroud)
$()替换为给定命令的输出,而不是其退出代码。要使用退出代码,请直接使用该命令if:
if git merge-base --is-ancestor "$COMMIT_ID" HEAD; then
Run Code Online (Sandbox Code Playgroud)