変数の拡張と変数の印刷(例:echo
または)printf
の違いは何ですか?
私が正しく理解したら、変数(対応する値)を印刷するのは単なる例です。拡大するそれ。おそらくその価値を置き換えるまた例です。
修正する
「変数拡張」という用語について簡単に定義してください。君の言葉で教えて、違いを説明する直前。
ベストアンサー1
拡張と印刷は異なるジョブです。拡張カバーシェルがコマンドを処理するステップ数:Bashでは、中括弧拡張({1..5}
これ1 2 3 4 5
)、チルダ拡張(適切になる~user
)/home/user
、シェル引数拡張(${variable}
変数値で置き換え)、コマンド置換、算術拡張、プロセス置換、トークン化、およびファイル名拡張が可能です。 (あなたも見ることができますPOSIXワード拡張.)
拡張という用語の全てのこれらの用途の1つの可能な説明は、全てコマンド拡張につながることができることである。つまり長くなります(これはCでシェルを開発するときに特に考慮する必要があります)。
あなたの場合、拡張はパラメータ拡張です。
echo "${variable}"
~になる
echo "value"
あなたが言った変数を置き換えた後
echo value
引用符を削除して(少し単純化)、echo
印刷します。 Justecho
とprintf
はシェルに組み込まれているため、シェルのみが含まれていますが、ステップは分離されており、状況は外部コマンドと同じです。
したがって、印刷は拡張の特別なケースではありませんでした。ただし、リンクされた質問に示すように、交換については次を参照してください。バッシュマニュアルもっと学ぶ。