1
私はGitはリセットするための確認を必要としたいので、私はこのようなWilliam Pursell's suggestion written hereを更新:これによりTAB完了時にgitが終了しないようにするには?
git() {
set -e -u
if [ $# -ge 2 ]; then
if [ "x$1" = "xreset" -a "x$2" = "x--hard" ]; then
echo "Are you sure? (Type 'yes')"
read resp || return $?
if [ "x$resp" = "xyes" ]; then
echo "Resetting"
else
echo "NOT Resetting"
return 0
fi
fi
fi
command git "[email protected]" || :
}
私は、コマンドの入力を間違えた場合は、コンソールから終了しないだろうが、私は使用しようとすると、それはまだ終了しますTAB補完。これを防ぐ方法はありますか?
'set -e -u'は一般的に悪い考えです。 **特にここでは不適切ですが、他のケースでも同様です。 [BashFAQ#105](http://mywiki.wooledge.org/BashFAQ/105)および[BashFAQ#112](http://mywiki.wooledge.org/BashFAQ/112)およびhttps:// wwwを参照してください。 .in-ulm.de /〜mascheck/various/set-e/ –
BTW、 '[" resp "=" yes "]'は完全に正しいです。古くなった 'x $ resp'イディオムは絶対に必要ありません。 - それは[現代のPOSIX標準](http://pubs.opengroup.org/onlinepubs/)によって廃止された' test'の使用にのみ存在するあいまいさを修正します。 9699919799/utilities/test.html)(単一の呼び出しで複数の異なるテストを組み合わせる '-a'と' -o'を使用します;標準の文書では、これらの隣にある "OB"を書き留めてください)それらのコーナーケースのどれにも近くない。 –