エラーを起こしやすいネストやエスケープの構文がより簡単で、少ないため$(...)
、古い`
ベースの構文よりも最新のコマンド置換構文の方が好ましいことを理解しています。
さらに、/bin/sh
現代の使用のほとんどのスタイルのシェルがサポートしているよう$(…)
です:
- バッシュ
- ash(したがってBusyBox、ほとんどの組み込みLinux)
- ダッシュ
- FreeBSD / bin / sh
そして、$(…)
IEEE 1003.1で指定されています。
だから私は2つの非常に関連した質問があります
- スクリプトを実行する必要がある特定の古いシステムを知らない限り、シェルスクリプトの新しい開発で `を使用する理由はありますか?
- 書くだけでUNIXプログラミングの学生に教えない理由はありますか?他の開発者のシェルスクリプトを読んでいる場合に遭遇する可能性があり、本当に古いシステムまたは非標準で作業している場合に必要になる可能性のある古いバリアントとしてのみ
$(...)
議論します`
何らかの理由で)?
$()
-shift + 4,9、shift + 0-5キーを押します。
`...`
。これは、Bourneシェルとの後方移植性のためだけにあります(BourneシェルがThomsonシェルとの後方移植性のために^
(と同じ|
)持っていたように)。ただし、(t)csh
持っていないことに注意してください(ただし、$(...)
それらを使用したり教えたりする意味はありません)。