私はしばらくの間bashでwarn関数を使用しています。bashのSTDERRにリダイレクトする3つの方法の違いは何ですか?
function warn { [ $# -gt 0 ] && printf '%s\n' "$*" >&2 ; }
しかし、私は最近、次のいずれかの構造を使用する必要があると言われました。
function warn { [ $# -gt 0 ] && printf >&2 '%s\n' "$*" ; }
または
function warn { [ $# -gt 0 ] && printf >&2 -- '%s\n' "$*" ; }
私は--
が(に渡されたパラメータは、ダッシュが含まれている場合、それはパラメータとして解析されない)を理解すると思います。
しかし、printf
の直後か、最後にリダイレクトするのはどういう違いがありますか?