回答:
${GZIP_BINDIR-'/bin'}
あるbash
パラメータ展開パターンが。からman bash
:
${parameter:-word}
Use Default Values. If parameter is unset or null,
the expansion of word is substituted. Otherwise, the value of parameter
is substituted.
この部分の直前に、manページには(通知する@jwodderに感謝します):
Omitting the colon results in a test only for a parameter that is unset.
マンページにあるように、変数のデフォルト値を設定しますGZIP_BINDIR
。場合GZIP_BINDIR
(あなたが使用していないとしてnull以外の予め設定された値がある:
その値が使用されますが)、それ以外の/bin
変数の値として使用されますGZIP_BINDIR
。
一方、null値もテストする場合は、次のパターンを使用します(include :
):
${GZIP_BINDIR:-'/bin'}
その後、$PATH
前に保持していた値に拡張されます。したがって、PATH
以前に持っていた場合:
/usr/sbin:/usr/bin
今、あなたPATH
はそうなります(考慮されGZIP_BINDIR
ていません):
/bin:/usr/sbin:/usr/bin
export PATH
これはPATH
、すべての子プロセスで利用可能になります。
:-
言う:「サブストリング拡張を行っていない場合は、未設定またはヌルのパラメータ(例えば、:-)、bashのテストの下に文書化フォームを使用。 コロンを省略します設定されていないパラメーターのみのテストになります。 "
PATH
し、export
次のように単一のコマンドにexport PATH="${GZIP_BINDIR-'/bin'}:$PATH"
パラメータ展開内のハイフンの前に実際にコロンはありません${GZIP_BINDIR-'/bin'}
か?
この種のコンストラクトはほとんどの場合、コロンで記述されます${GZIP_BINDIR:-'/bin'}
。つまり、「$ GZIP_BINDIRがNULLまたは未設定の場合、 '/ bin'に設定する」という意味です。
ただし、指定した構文は有効ですが、まれです。${GZIP_BINDIR-'/bin'}
(コロンなし)は、「$ GZIP_BINDIRが設定されていない場合、「/ bin」に設定する」ことを意味します。設定されている(宣言されている)が、何も割り当てられていない場合(例:NULL)、何も挿入されません。
コロンとしてても、ここでバグがあるかもしれません、次の変数の構築物(...} :
$ PATHが...)します $ GZIP_BINDIRはセットが、NULLである場合は、まだ挿入されて。これにより、$ PATHの先頭にコロンが追加されるため、現在のディレクトリが最初に検索されます。
ほとんどの場合、現在のディレクトリに置くだけで、標準コマンドと同じ名前の悪意のあるプログラムを実行しやすくするため、セキュリティの問題と見なされます。
$ GZIP_BINDIRが設定されているがNULL(空)の場合に$ PATHを変更しないままにするには、正しい構文は次のようになります。 ${GZIP_BINDIR-'/bin:'}$PATH; export PATH
$ GZIP_BINDIRが設定されていないか、設定されているがNULLである場合に$ PATHを変更しないままにするには、正しい構文は次のようになります。 ${GZIP_BINDIR:-'/bin:'}$PATH; export PATH
このコマンドは、PATH変数を更新します。
PATH
実行可能プログラムが置かれているディレクトリのセットを指定する環境変数です。
PATH="${GZIP_BINDIR-'/bin'}:$PATH";
これGZIP_BINDIR
は、前のPATHに終了する場合は別の変数の値を追加し、そうでない場合は代わりに/ binを使用してPATHに追加
export PATH
輸出は、読む、すべての子プロセスおよびサブシェルのために利用可能PATHを設定するために使用され、これを詳細については、
これは静的ではなく、シェルを終了すると失われることに注意してください。
このPATH編集を永続的にするには、これらの行を追加する必要があります .bashrc
gedit .bashrc
そして、行を追加します
export PATH="${GZIP_BINDIR-'/bin'}:$PATH"
その後、コマンドを実行します
source .bashrc
:
で${GZIP_BINDIR-'/bin'}
必ずしもそうではありません」。${parameter-word}
も有効ですが、マニュアルページにはないようです。