変数を位置引数として関数に渡す場合、関数内で使用される変数の名前を確認できますか、それともその値にのみアクセスできますか?
envir-export
環境変数を定義し、それを特別な環境ファイルに保存してから、その環境変数を取得する関数があります。
envir-export ()
{
nm="$1"
vl="$2"
envirs_trkrc="${HOME}/Opstk/envirs"
echo "export ${nm}=${vl}" >> ${envirs_trkrc}/envirs.rc
source ${envirs_trkrc}/envirs.rc
echo "$nm exported with value $vl"
}
現在、次の通貨を使用しています
envir-export VERBOS 8
VERBOS
値のある名前を使用してください8
。
利便性と機能性の両方でこの機能を改善したいと思います。
たとえば、値が指定されていない場合は、値が割り当てられた名前のみがエクスポートされます。
ベストアンサー1
これを達成する一般的な方法は、次のことを行うことです。
function envir-export () {
name="${1%%=*}"
value="${1##*=}"
echo 'the name is '"$name"
echo 'the value is '"$value"
}
envir-export VERBOS=8
$ function f () { name="${1%%=*}" ; value="${1##*=}" ; echo name "$name" ; echo value "$value" ; } ; f VERBOS=8
name VERBOS
value 8
$
入力を名前と値に分割する方法については、bashのマニュアルページを確認して「パラメータ拡張」を検索してください。