構文的に有効なbashコードではなくshコードはありますか?

構文的に有効なbashコードではなくshコードはありますか?

sh構文上有効なbashコードではないコードがあります(構文を放棄せずに)?

いくつかのコマンドshでオーバーライドしようとしています。bash

ベストアンサー1

ここにいくつかのコードがあります何か他のことをしなさいPOSIX shとBashでは:

hello &> world

これがあなたに「働かない」かどうかはわかりません。

バッシュでは標準出力と標準エラーリダイレクトhelloファイルを入力してくださいworld。 POSIXでは、バックグラウンドで実行され、次にnullリダイレクトを実行してshそれを切り捨てます(つまり、そのように処理されます)。helloworld& >

Bash拡張が実行時に機能bashし、純粋なPOSIXで異なる効果を持つ他の多くのケースがありますsh。例えば、支柱の拡張BashのPOSIXモードでも実行される別のモードですが、そうではありません。


静的構文エラーの観点から、Bashには、[[などのPOSIX指定されていない予約語があります。たとえば、これは有効なPOSIXシェルコードですが、Bash構文エラーとさまざまな履歴があります。time[[ xPOSIXの非互換性エラーが原因で、この質問などの構文エラーが発生する可能性があります。:

x=$(cat <<'EOF'
`
EOF
)
bash: line 2: unexpected EOF while looking for matching ``'
bash: line 5: syntax error: unexpected end of file

単純な構文エラーは、重要な状況では「間違っている」という非常に危険な定義ですが、存在します。

おすすめ記事