이전 정의와 관련하여 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
Stack Overflow 의이 게시물이 귀하의 질문에 대한 답변 이라고 생각 합니다 .
—
Mat
대신 다음과 같은
—
추후 공지가있을 때까지 일시 중지되었습니다.
eval
간접적 인 사용이 가능합니다.local VAL=$(echo ${!1})