변수를 위치 인수로 함수에 전달하는 경우 함수 내에서 사용되는 변수의 이름을 확인할 수 있습니까, 아니면 해당 값에만 액세스할 수 있습니까?
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 매뉴얼 페이지를 확인하고 "매개변수 확장"을 검색하세요.