「単語拡張」を理解していますか?

「単語拡張」を理解していますか?

「単語拡張」という用語に触れました。ここ:

他の すべての単語拡張(、、、、、、、$non_exported_shell_variable変更しない)$1$#${HOME+x}$((1 + 1))$(cmd)...)

拡張変数が何であるかはわかります${HOME}が、「単語拡張」とは何ですか?

おそらく、「単語分割」の代替用語である可能性があります(「フィールド分割」の代替用語自体)。

修正する

リンクされた回答の寿命と最初の読書の認知的偏見(主に​​または単にここで言及されている多くの概念の理解が不足しているため)は、次のメモを内部化しませんでした。

単語拡張この文脈では、以下を指します。パラメータ拡張算術拡張そしてコマンドの置き換え。これには含まれません。ファイル名の生成(別名ワイルドカードまたはパス名拡張)、チルダ拡張...でもない支柱の拡張(標準sh機能自体ではありません)。ここでドキュメントを使用すると、およびは変更されていません'"、まだバックスラッシュ処理があることに注意してください。

答え1

「単語拡張」(複数形参照)は、以下で詳細に定義されています。POSIX;彼らは

  • チルダ拡張( ~)
  • パラメータ拡張( ${})
  • コマンドの置換( $())
  • 算術拡張( $(()))
  • パス名拡張

「単語拡張」は、上記のすべての機能を、特定の順序で他のいくつかのシェル解析機能と組み合わせて適用したものです。

  1. チルダ拡張、パラメータ拡張、コマンド置換、算術拡張
  2. フィールド分割
  3. パス名拡張
  4. 見積もりの​​削除

これについて詳しくは、上記のPOSIX仕様を参照してください。

関連情報