ファイルに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