bash에서 기본적으로 모든 변수를 읽기 전용 및 로컬로 설정

bash에서 기본적으로 모든 변수를 읽기 전용 및 로컬로 설정

스크립트를 작성할 때 변수를 생성할 때 및 를 bash많이 사용했습니다 . 이렇게 하면 스크립트가 빨리 채워지고 코드 읽기가 어려워지고 반복적이게 됩니다. 모든 변수 및/또는 기본값을 생성하는 방법(예: 스크립트 상단의 플래그)이 있습니까 ?readonlylocal -rsetreadonlylocal -r

추가된 주의 사항은 3.2.57(1)-releasemacOS에서 실행되어야 한다는 것입니다.

나는 이것이 불가능하다고 확신하지만 확인하고 싶었습니다.

"포기 bash하고 올바른 스크립트 언어를 사용하십시오"라고 대답하지 마십시오. 나는 또한 다른 스크립팅 언어를 사용합니다. bash스크립트에는 그 자리가 있고 저는 코딩을 즐깁니다.

답변1

기본적으로 모든 변수를 읽기 전용 및/또는 local-r로 만드는 방법(예: 스크립트 상단에 플래그 설정)이 있습니까?

아니요. 소스 코드를 bash.

그러나 변수를 읽기 전용으로 만드는 데 필요한 의미 체계를 줄이기 위해 별칭을 선언할 수 있습니다.

예를 들어,

#!/bin/bash
#
shopt -s expand_aliases
alias lr='local -r'

demo() {
    lr a=123
    echo "$a"
    ((a++))      # Correctly fails with "a: readonly variable"
}

demo

답변2

사용하여발표하다기능 변수를 읽기 전용으로 만들 수 있습니다. 함수에 사용될 때발표하다변수를 로컬로 만듭니다.

구문은 다음과 같습니다발표하다이것은:

declare arg VARIABLE=value

변수를 읽기 전용으로 만들려면 다음을 사용할 수 있습니다.-아르 자형토론:

declare -r num=12

자세한 내용은 여기에서 확인하세요:http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_10_01.html

이것이 정확히 당신이 찾고 있는 것인지는 확실하지 않지만 BASH로 얻을 수 있는 것만큼 좋은 것 같습니다.

관련 정보