Ubuntu 18.04 LTS(Bionic Beaver)でBashシェルを使用しています。ユーザーが後続のターミナルインスタンスでその変数を使用して特定の機能の詳細度を設定するために使用できるbashで環境変数を定義できるようにしたいと思います。
これらの機能を有効または無効にするには、ユーザーは何をすべきですか?要点は、ユーザーが.bashrc
直接変更することなく環境変数機能を有効または無効にできることです。これらの設定は、その機能を必要とする特定のユーザーのみを使用してください。
答え1
変数を設定するには、変数を設定するだけです。たとえば、次のように変数を設定するかどうかに応じて動作を変更するシェル関数があるとします。
check_verbosity(){
if [ -n "$VERBOSE" ]; then
echo "Am I verbose? Why yes, indeed I am, my friend!"
else
echo "no"
fi
}
その後、それに応じて変数を設定して動作を変更できます。たとえば、
$ check_verbosity
no
$ VERBOSE=yes
$ check_verbosity
Am I verbose? Why yes, indeed I am, my friend!
コマンドの実行中に関数を定義して、関数の特定のインスタンスの変数を設定することもできます。
$ VERBOSE=yes check_verbosity
Am I verbose? Why yes, indeed I am, my friend!
$ check_verbosity
no
したがって、この変数が必要な関数とスクリプトを作成すると、各ユーザーは必要に応じて自由に設定できます。変更を永続的に適用するには、それをファイルに追加するか~/.profile
(~/.bash_profile
存在する場合)、ファイルに追加して常に設定します。
export VERBOSE=yes
実行環境で設定または設定されていない変数にプログラムが反応するという考えは、比較的一般的な慣用語です。例えば(等)にls
反応LS_COLORS
して反応します。多くのページには、プログラムが反応するように作成された環境変数を説明するセクション(通常は終わり)があることがわかります。grep
GREP_COLORS
man
ENVIRONMENT
答え2
あなたの質問を正しく理解したら、特定のユーザーが望む場合は、たとえば特定のコマンドmv -v
に対して詳細なオプションを有効にしたいと思います。これが正しい場合は、2つの提案があります。
- ユーザーにエイリアスの使用方法を教えてください。詳細な出力を含む、必要に応じて各コマンドのパラメータを定義できます。何百ものコマンドではなく6つのコマンドについて詳しく説明したい場合は、これを行うことができます。何らかの理由でエイリアスなしで別名コマンドを実行したい場合は、コマンドの前にバックスラッシュを追加できます。
- 承認されたエイリアスを含むファイルを作成し、
bash_aliases
ネットワーク内の誰でも利用できるようにします。ユーザーは、端末を開くときにファイルを取得するsource <path>/bash_aliases
か~/.bashrc
。
私はあなたのbashの知識がどれほど広いかを知る方法がないので、提供します。私自身の bash_aliases ファイル例えば。それは私にとってうまくいきます。