古い定義の観点からbash関数を再定義する方法はありますか?たとえば、次のコードブロックを関数のプリアンブルに追加しますcommand_not_found_handle ()
。
# Check if $1 is instead a bash variable and print value if it is
local VAL=$(eval echo \"\$$1\")
if [ -n "$VAL" ] && [ $# -eq 1 ]; then
echo "$1=$VAL"
return $?
fi
現在、/ etc / profile.d / PackageKit.shで定義されており、bash起動スクリプトをソースとしています。
そうすれば、変数名を入力するだけでコマンドプロンプトで環境変数の値を照会できます(その名前のコマンドが存在しない場合)。例えば
user@hostname ~:$ LANG
LANG=en_AU.utf8
現在の定義をコピーして貼り付け、に独自の変更を追加できることは知っていますが~/.bashrc
、コードの再利用を伴うよりエレガントな方法を探しています。
私の目標やコードの改善/拡張を達成するためのより良い方法も高く評価されています。
この質問がstackoverflowにより適している場合、誰かがそれを移行できますか、私は知りません。
—
tmoschou
私が思うに、スタックオーバーフロー上のこの記事は、あなたの質問に答えます。
—
マット
代わりに
—
追って通知があるまで一時停止しました。
eval
、あなたは間接を使用することができますlocal VAL=$(echo ${!1})