暗号bash変数


2

私はこの形式の暗号化されたコードに出会いました。これには何らかの形の変数展開が含まれていると思います。

echo "Usage: ${0##*/} [-f] [-u user] [--] "

ドル記号とそれに続く中括弧で囲まれたストリングは、bash変数$ 0と同等ですか?もしそうなら、なぜ後者と対照的に前者を使うのでしょうか?悟りをありがとう。


これはより良い応答を得るかもしれません stackoverflow.com
Raystafarian

回答:


3

${variable} 通常のパラメータ展開です。中かっこは、別の文字列の途中で展開するときに変数名を区切るために使用できます。たとえば、拡張したい場合 $variablefooつまり、シェルは変数名の終わりを知る方法がありません。を使って ${variable}foo 代わりに、シェルはあなたが意味することを正確に知っています。

ブレースはまた、拡張中に他の様々な手術を行うことを可能にする。上記の例では、式が一致するものが左側から削除されます。パスのような文字列が与えられた場合 /a/b/c、それは戻ります c。これは実質的には basename しかし、パラメータ展開は状況によってはより便利で読みやすくなります。

パラメータ展開で実行できるさまざまな基本的な文字列操作があります。組み込みの操作であるため、単純なタスクを実行する場合、それらは通常sedやawkよりもパフォーマンスが優れています。

あなたがシェルスクリプティングに興味があるなら、私はあなたが読むことを勧めます このガイド bashハッカーのウィキに。


良い説明これは、それぞれを独自のスタイルで説明したリンクです。 「プロのような文字列の切り取り」のセクション リンク そしてもちろんLinux Documentation ProjectのWebサイト リンク
cdaaawg

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.