&>テストまたは> test2>&1

&>テストまたは> test2>&1

&>エラーとデータ処理のガイドラインを読みました。

$ls -al test test2 test3 badtest &> test7
$ cat test7
ls: cannot access 'test': No such file or directory
ls: cannot access 'badtest': No such file or directory
-rw-r--r-- 1 me staff 78 Oct 28 19:07 test2
-rw-r--r-- 1 me staff  0 Oct 28 19:03 test3

それにもかかわらず確認してみると廃止予定のフレーズ [Bash Hackers Wiki]

それはお勧めします2>&1

$ ls -al test test2 test3 badtest > test7 2>&1

 $ cat test7
ls: cannot access 'test': No such file or directory
ls: cannot access 'badtest': No such file or directory
-rw-r--r-- 1 me staff 78 Oct 28 19:07 test2
-rw-r--r-- 1 me staff  0 Oct 28 19:03 test3

どのパターンに従うべきですか?

答え1

それはあなた次第です。

シェルは とbashを等しく理解し、電子構文を後者作成のための近道として使用できます。他のシェルでは構文エラーまたはエラーが発生する可能性があります。&>file>file 2>&1&>

もしあなたならただbash(たとえばスクリプトの代わりに)スクリプトを作成するには、/bin/sh必ずを使用してください&>。しかし、書きたいか必要な場合持ち運べるスクリプト(同様のシェルで実行する必要があるスクリプトや他のシェルで実行できるスクリプト)/bin/shは避けるべきことの1つです。shbashkshzshdash&>

すべてのsh類似シェルの実装POSIX規格構文と構文の観点からは、他のbashシェルも配列や正規表現のマッチングなどの拡張などの構文上の利便性を提供し、一部のシェルは&>実装方法とはまったく異なる方法でPOSIX標準を拡張できます。bash

関連:

関連情報