Linux 학습 6 편
Shell 의 변 수 는 환경 변수, 위치 변수, 미리 정 의 된 특수 변수 와 사용자 정의 변수 로 나 눌 수 있 습 니 다.
Shell 의 환경 변 수 는 Shell 미리 정 의 된 변수 로 시스템 운영 환경 을 설정 하 는 변수 이 고 환경 변 수 는 시스템 에서 통일 적 으로 이름 을 짓 습 니 다.일부 시스템 변수의 값 은 시스템 에서 설정 하고 일부 환경 변수의 값 은 사용자 가 지정 할 수 있 습 니 다.
환경 변수의 이름 은 대문자 로 구성 되 어 있 으 며 자주 사용 하 는 Shell 환경 변 수 는 다음 과 같 습 니 다.
HOME: 사용자 홈 디 렉 터 리 의 전체 경로 이름, cd $HOME 는 사용자 홈 디 렉 터 리 로 전환 할 수 있 습 니 다.
PATH: 윈도 우즈 아래 경로 와 유사 합 니 다. Shell 은 바 이 너 리 실행 파일 을 순서대로 찾 습 니 다.
echo $PATH 는 현재 PATH 를 표시 하고 새로운 PATH 방법 을 추가 합 니 다 $PATH = $PATH: 새 PATH
TERM: 터미널 형식 echo $TERM
PS1: 프롬프트, 루트 사용 자 는 기본적으로 \ #, 일반 사용 자 는 기본적으로 $입 니 다.
SHELL: Shell 해석 기의 절대 경로
로그 인 사용자 이름
UID: 현재 사용자 UID echo $UID
위치 변 수 는 명령 행 에 나타 난 매개 변수의 위치 에 따라 확 정 된 변수 입 니 다. 셸 프로그램 을 호출 하 는 명령 행 에서 매개 변수의 위 치 는 다음 과 같 습 니 다.
$명령 하 다. 매개 변수 1 매개 변수 2 매개 변수
그 속 $0 대응 하 다 실 행 된 명령 명
$1 대응 하 다 매개 변수 1
$2 대응 하 다 매개 변수 2
$3 대응 하 다 매개 변수
미리 정 의 된 특수 변 수 는 특수 한 의 미 를 가지 고 있 습 니 다. 사용 자 는 변경 할 수 없습니다. 모든 미리 정 의 된 변 수 는 '$' 기호 와 다른 기호 로 구성 되 어 있 습 니 다. 자주 사용 하 는 미리 정 의 된 특수 변 수 는 다음 과 같 습 니 다.
$\ #: 위치 매개 변수 개수 (Shell 스 크 립 트 이름 포함 하지 않 음)
$*: 위치 매개 변수 로 구 성 된 문자열
$!: 이전 배경 명령 에 대응 하 는 프로 세 스 번호
$?: 이전 명령 의 종료 상 태 는 10 진수 이 며, 0 으로 돌아 가면 실행 에 성공 한 것 을 의미 합 니 다.
$$: 현재 프로 세 스 번호 PID
요구: 변수 이름 은 알파벳 이나 밑줄 로 시작 하고 뒤에 임의의 수량의 알파벳, 숫자, 밑줄 을 긋 습 니 다.
합 법 적:name SIZE my_idea
두 개의 내 장 된 명령 declare 와 typeset 는 변 수 를 만 드 는 데 사용 할 수 있 습 니 다.명령 의 옵션 설정 을 통 해 변수의 생 성 자 를 설정 할 수 있 습 니 다.
변수 할당 과 참조
Shell 프로 그래 밍 에서 변 수 를 사용 할 때 미리 설명 할 필요 가 없 으 며 변수 이름 의 이름 은 다음 과 같은 규칙 을 따라 야 합 니 다. #첫 번 째 문 자 는 알파벳 (a - z, A - Z) 이 어야 합 니 다. #중간 에 빈 칸 없 음, 밑줄 사용 가능 () #문장 부 호 를 사용 할 수 없습니다. #bash 의 키 워드 를 사용 할 수 없습니다. (help 명령 으로 키 워드 를 유지 할 수 있 습 니 다) 변수 에 값 을 부여 해 야 할 때 이렇게 쓸 수 있 습 니 다. 변수 이름 = 값 변 수 를 사용 하려 면 변수 이름 앞 에 $를 추가 하 십시오. (주의: 변 수 를 할당 할 때 "=" 양쪽 에 빈 칸 을 남 겨 서 는 안 됩 니 다)
시스템 에서 unset 명령 을 제공 하면 변 수 를 삭제 할 수 있 습 니 다. 예 를 들 어 unset name
변수의 할당 은 다섯 가지 가 있 습 니 다. read 명령 을 사용 하고 직접 할당 하 며 명령 행 인 자 를 사용 하고 명령 행 의 출력 결 과 를 사용 하여 파일 에서 읽 습 니 다.
read 명령 사용 read name
직접 할당 a = "hello world" #등호 양쪽 에 모두 빈 칸 이 있어 서 는 안 된다.
명령 행 의 출력 결 과 를 사용 합 니 다. echo"A is:" $a
명령 행 매개 변수 할당 (이 할당 방법 은 매개 변수 가 자주 변화 하고 상호작용 이 필요 없 을 때 사용) 을 실행 할 때 뒤의 매개 변수 입 니 다.
파일 에서 데 이 터 를 읽 는 방식 은 대량의 데 이 터 를 처리 하 는 데 적합 하 며, 해당 데 이 터 를 파일 에 직접 기록 한 다음 스 크 립 트 를 실행 하면 됩 니 다.
보통 while 순환 을 통 해 한 줄 의 데 이 터 를 읽 습 니 다. 즉, 한 번 순환 하지 않 고 파일 에서 한 줄 의 데 이 터 를 읽 습 니 다. 파일 의 끝 을 읽 을 때 까지.
예 를 들 면:
#!/bin/bash
ls *.sh >execfile
while read LINE
do
chmod a+x $LINE
done
문자열 을 포함 할 때 세 가지 인용 부 호 를 사용 해 야 하 는데, 각각 작은 따옴표, 작은 따옴표 와 작은 따옴표 이다.
전체 인용
1. mv "a ~file name.txt" another.txt
이런 상황 에서 작은 따옴표 는 별 차이 가 없고 그들의 의 미 는 같다.
변수 교체
1. echo "The value of '${var}' is ${var}".
이러한 상황 에서 하나의 변수 가 두 따옴표 로 묶 인 문장 에 사 용 될 때 그 내용 으로 대 체 됩 니 다.작은 따옴표 를 사용 할 때 변 수 는 바 뀌 지 않 습 니 다.그래서 작은 따옴표 가 더 강 한 인용 이 라 고 할 수 있다.위의 예 와 같은 출력 결 과 는:
1. The value of '${var}' is bbb.
3. 명령 교체
1. var='uname -r'
이렇게 하면 변수 $var 의 값 은 uname - r 의 출력 을 명령 하 는 것 입 니 다.
변수 교체 보다 더 고 급 스 러 운 것 은 일치 입 니 다. 예 를 들 어 ${f% jpg} 은 jpg 로 변수 f 를 뒤에서 일치 시 키 고 일치 하 는 부분 (즉 확장자) 을 제거 하 는 동시에 두 개의 백분 호 를 사용 할 때 최대 일치 방식 을 사 용 했 습 니 다. 예 를 들 어 "abcdabcd" 는 a * d 로 일치 할 때 최대 일치 하면 모든 8 글자 가 일치 합 니 다.최소 로 매 칭 할 때 는 4 개가 매 칭 된다.백분 번호 와 대응 하여 '\ #' 을 사용 하여 변 수 를 이전 에서 뒤로 일치 시 킬 수도 있 고 두 개 로 최대 일치 도 표시 할 수 있 습 니 다.
예 를 들다
1. #!/bin/bash
2. for var in *.sh
3. do
4. echo "${var%sh}"
5. done
결 과 는 다음 과 같다.
1. test1.
2. test2.
3. test3.
4. test.
접미사 가 없어 졌 으 니 접미사 이름 을 수정 할 수 있 습 니 다.
1. #!/bin/bash
2. for var in *.sh
3. do
4. mv "${var}""${var%sh}SH"
5. done
이렇게 소문 자 쉬 가 대문자 로 바 뀌 었 어 요.
echo
echo hello \ # 변수 참조 없 이 hello 문자열 일 뿐 입 니 다. echo $hello echo ${hello} // "$hello" echo "${hello}" hello = "A B C D" echo $hello \ # A B C D echo "$hello" \ # A B C D
echo '$hello' # $hello
let
let a=16+5
: ,
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.