デフォルト引数がbashスクリプトで機能しない

デフォルト引数がbashスクリプトで機能しない

客観的: Bitbucket へのコミットを処理するためのスクリプトのデフォルトメッセージを設定します

問題: コンソールがエラーを返す

Google で見た内容に従って、次のスクリプトを試しました。

commit_message=${1:"checkpoint commit"} 
git add .
git commit -m $commit_message
git push origin 

前述したように、ここで再現されるエラーが返されます。

コミットに何も追加されていませんが、追跡されていないファイルが存在します。エラー: src refspec ハンドルがいずれにも一致しません。エラー: src refspec プログラムスクロールがいずれにも一致しません。エラー: src refspec 調整がいずれにも一致しません。エラー: 一部の参照を ' にプッシュできませんでした。https://bitbucket.org/yyyyyyy.git'

答え1

これは、軽微な構文の問題です。bash、およびその他の POSIX 準拠のシェルでは、デフォルト値を使用する場合、重要な区切り文字は ではなく、または:です。-=

commit_message=${1:-"checkpoint commit"} 
git add .
git commit -m "$commit_message"
git push origin

デフォルト値と代替値に関するドキュメントは、次の場所にあります。

関連情報