파일에 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