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
특정 명령에 대해 자세한 옵션을 활성화할 수 있기를 원할 것입니다. 이것이 맞다면 두 가지 제안이 있습니다.
- 사용자에게 별칭 사용 방법을 알려주세요. 자세한 출력을 포함하여 원하는 대로 각 명령의 매개변수를 정의할 수 있습니다. 수백 개의 명령이 아닌 6개의 명령에 대해 자세히 설명하고 싶다면 그렇게 할 수 있습니다. 어떤 이유로 별칭 없이 별칭이 지정된 명령을 실행하려는 경우 명령 앞에 백슬래시를 추가할 수 있습니다.
- 승인된 별칭이 포함된 파일을 만들고
bash_aliases
네트워크의 모든 사람이 사용할 수 있도록 하세요. 사용자는 터미널을 열 때 파일을 얻source <path>/bash_aliases
거나~/.bashrc
.
나는 당신의 bash 지식이 얼마나 광범위한지 알 방법이 없으므로 제공하겠습니다.내 자신의 bash_aliases 파일예를 들어. 그것은 나에게 잘 작동합니다.