1
スクリプト:
#!/bin/bash
declare -a arr=()
echo ${#arr[@]:-}
がアーチLinux上で失敗する(bashの4.4.5):
-bash: ${#arr[@]:-}: bad substitution
それはUbuntuの14.04(bashの4.3.11)やDebian 8上で動作している間(4.3.30) 。 arrayfunc.c
でvalid_array_reference
関数で
この置き換えは実際には意味がありません。なぜあなたはそれがまったく動作すると思いますか? (そして、明らかに - 何かが文書化されていないと、それが将来的には動作しなくなるのはバグではなく、未定義の動作の変化です)。 –
(配列の長さは空でも空でもかまいません。したがって、 "デフォルトは空"は意味がありません)。 –
もう一つは、bash用のgitリポジトリは実際にチェンジセットレベルの粒度を持っていないということです。チェットは新しいリリースを公開するたびに新しいコミットを行いますので、 "Xを変更するバグZに応答してメッセージYをコミットし、このデルタが動作する原因となりました。 –