1.3 회전 변수 와 환경 변수

2640 단어
《 Linux Shell 스 크 립 트 공략 (제2판) 》 독서 노트
  • 변 수 는 사용 하기 전에 형식 을 설명 하지 않 고 직접 값 을 부여 해 야 합 니 다.
  • 모든 변수의 값 은 문자열 입 니 다.
  • 일부 특수 한 변 수 는 셸 환경 과 운영 체제 환경 에 의 해 특별한 값 을 저장 하 는데 이런 변 수 는 환경 변수 라 고 불 린 다.

  • 1. 예비 지식env: 터미널 과 관련 된 모든 환경 변 수 를 볼 수 있 습 니 다.
    프로 세 스 의 환경 변 수 를 보 려 면 다음 명령 을 사용 하 십시오.
    $ pgrep gedit   #使用此命令查看'gedit'应用的进程ID
    12501
    $ cat /proc/12501/environ   #查看进程 12501 的环境变量
    GDM_KEYBOARD_LAYOUT=usGNOME_KEYRING_PID=1560USER=slynuxHOME=/home/slynux
    

    모든 변 수 는 name=value 형식 으로 설명 되 고 서로 null 문자 \0 로 구 분 됩 니 다.tr 명령 으로 \0
    로 바 꾸 어 출력 을 더욱 직관 적 으로 할 수 있다.
    $ cat /proc/12501/environ | tr '\0' '
    '

    2. 변수의 할당 과 사용
    변 수 는 다음 과 같은 방식 으로 할당 작업 을 할 수 있 습 니 다.
    var=value #var是变量名;value是值,如果value包括任何空白字符,那么必须使用单引号或者双引号
    

    주의: var = value 과 다르다 var=value.var=valuevar = value 로 쓰 는 것 은 흔히 볼 수 있 는 오류 이지 만 전 자 는 할당 작업 이 고 후 자 는 똑 같은 조작 이다.
    사용 변수
    변수 이름 전에 접두사 $ 를 붙 이면 됩 니 다.
    var="value" #给变量var赋值
    #使用时,如下两种方式都可以
    echo $var
    echo ${var}
    echo "Hello ${var}" #注意,单引号不行
    

    환경 변수
    환경 변 수 는 현재 프로 세 스에 서 정의 되 지 않 고 부모 프로 세 스에 서 계 승 된 변수 입 니 다.
    예 를 들 어 환경 변수 HTTP_PROXY 는 인터넷 연결 이 어떤 프 록 시 서버 를 사용 해 야 하 는 지 정의 했다.
    HTTP_PROXY=192.168.1.23:3128
    export HTTP_PROXY #export命令用来设置环境变量
    

    환경 변 수 를 어떻게 설정 합 니까?
    $ export PATH="$PATH:/home/user/bin"
    
    $ PATH="$PATH:/home/user/bin" 
    $ export PATH
    

    3. 보충 내용
    1. 문자열 길이 가 져 오기
    length=${#var}
    

    2. 현재 사용 중인 셸 인식
    echo $SHELL
    
    echo $0
    

    3. 슈퍼 유저 여부 확인
    if [ $UID -ne 0 ]; then
      echo Non root user. Please run as root. 
    else     
      echo Root user 
    fi
    

    4. Bash 프롬프트 문자열 수정 (username@hostname:~$)
    기본 셸 알림 텍스트 는 파일 PATH 의 한 줄 에 설정 되 어 있 습 니 다.
  • 설정 변수 ~/.bashrc 의 줄 을 다음 명령 으로 표시 할 수 있 습 니 다.
    $ cat ~/.bashrc | grep PS1 
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    
  • 맞 춤 형 알림 문자열 을 설정 하려 면 다음 을 입력 하 십시오.
  • slynux@localhost: ~$ PS1="PROMPT>" 
    PROMPT> Type commands here #提示字符串已经改变
    

    일부 특수 한 문 자 는 시스템 매개 변수 로 확장 할 수 있 습 니 다.PS1: 사용자 이름 \u: 호스트 이름 \h: 현재 작업 디 렉 터 리
  • 좋은 웹페이지 즐겨찾기