Shell 스 크 립 트 학습 의 기본 프로그램 구조

4181 단어 linuxshell각본
Shell 스 크 립 트: 특정한 작업 을 수행 할 때 지정 한 해석 기 가 실행 할 수 있 는 '텍스트 파일' 을 쌓 아 올 리 는 명령 으로 만 든 것 입 니 다.
이것 은 내 가 Shell 스 크 립 트 에 대한 이해 이다.
1. Shell 스 크 립 트 는 실행 가능 한 텍스트 파일 입 니 다. 컴 파일 이 필요 없고 연결 이 필요 없 으 며 다 쓰 면 바로 실행 할 수 있 습 니 다.
2. Shell 스 크 립 트 의 주 체 는 명령 입 니 다. 모든 문 구 는 콘 솔 에서 직접 실행 할 수 있 습 니 다.
3. 해석 기 를 지정 합 니 다. 이것 이 바로 모든 Shell 스 크 립 트 의 첫 번 째 말 입 니 다. 고정 적 입 니 다. 해석 기 는 여러 개, Bash, CShell 등 이 있 기 때문에 지정 해 야 합 니 다.
프로그램 = 가장 간단 한 구조 + 문장 + 실현 사상.
가장 간단 한 구 조 는 사람의 골격 에 해당 하 는 가장 간단 한 절차 로 모든 절차 의 조상 이 라 고 할 수 있 는 것 이 바로 그것 이다.
문 구 는 사람의 피 와 살 에 해당 하 는 것 으로 이 뼈 대 를 채 우 는 데 쓰 인 다.내 가 보기에 네 가지: 입 출력, 순환, 판단.
사상 을 실현 하 는 것 은 사람의 영혼 에 해당 하고 실현 해 야 할 기능 은 모두 여기에 나타난다.
가장 간단 한 구조, 그것 이 가장 간단 한 절차 이다.
#!/bin/bash
exit 0

이 Shell 은 아무것도 하지 않 고 물 러 났 지만 가장 간단 한 Shell 스 크 립 트 입 니 다. 그 는 문법 규칙 에 부합 합 니 다.
첫 줄 에 이 스 크 립 트 는 bash 가 설명 하고 실 행 됩 니 다.
두 번 째 줄 은 현재 스 크 립 트 를 종료 합 니 다.
Shell 의 실행 은 두 가지 방식 이 있 습 니 다.
하 나 는./스 크 립 트 이름. sh 방식 으로 실 행 됩 니 다. 이 실행 방식 은 새로 bash 를 열 어 이 스 크 립 트 를 실행 하 는 것 입 니 다. 하위 프로 세 스 와 같은 방식 으로 실 행 됩 니 다. 따라서 스 크 립 트 의 모든 변 수 는 스 크 립 트 가 종 료 된 후에 삭 제 됩 니 다. 부모 프로 세 스에 흔적 을 남기 지 않 습 니 다.
하 나 는 source 스 크 립 트 이름. sh 방식 으로 실 행 됩 니 다. 이 방식 은 하위 프로 세 스 를 열지 않 고 실 행 됩 니 다. 스 크 립 트 의 모든 변 수 는 현재 bash 에 영향 을 줍 니 다. 즉, 스 크 립 트 가 실 행 된 후 현재 명령 줄 에서 스 크 립 트 의 변 수 를 볼 수 있 습 니 다. (스 크 립 트 가 취소 되 지 않 았 다 면)
문장
입력:
Shell 스 크 립 트 의 입력 은 C 언어의 입력 과 마찬가지 로 하 나 는 외부 에서 읽 고 하 나 는 명령 자체 입 니 다.
외부 에서 읽 은 것 은 read 명령 으로 사용자 의 입력 에서 읽 은 데이터 로 C 언어의 scanf 와 유사 합 니 다.
#!/bin/bash
read -p "please enter a number:" iInputNum
exit 0

이 프로그램 은 사용자 에 게 숫자 를 입력 하고 사용자 의 입력 을 읽 으 라 고 알려 주 는 것 이다.
여기에 입력 이 있 으 니 당연히 저장 해 야 하기 때문에 변 수 를 정의 하여 저장 해 야 한다.Shell 스 크 립 트 의 변 수 는 내 가 본 것 중 가장 자 유 롭 게 정 의 된 것 이다.유형 이 없 으 면 언제든지 정의 하고 언제든지 사용 합 니 다.
문자열 을 마음대로 쓰 세 요. 그 는 변수 입 니 다. 숫자 일 수도 있 고 문자열 일 수도 있 고 명령 의 실행 결과 일 수도 있 습 니 다. 모두 좋 습 니 다.
명령 자체 의 입력 은 실 행 된 명령 뒤에 인자 가 있 는 것 을 말 합 니 다. C 언어 와 유사 한 int argc 와 char * argv 를 말 합 니 다.Shell 스 크 립 트 는 같은 기능 을 제공 합 니 다. 이것 은 Shell 스 크 립 트 의 기본 변수 입 니 다.
$0: 명령 자 체 를 나타 낸다
$1: 명령 후의 첫 번 째 인자
$2: 명령 후의 두 번 째 인자
순서대로 유추 하 다.
$\#: 명령 자 체 를 포함 하지 않 는 매개 변수의 개수 입 니 다.
$@: 명령 자 체 를 포함 하지 않 고 모든 인 자 를 출력 합 니 다.
출력
출력 도 출력 형식 을 제어 할 필요 가 없습니다. 명령 만 있 습 니 다: echo.
#!/bin/bash
echo "Hello world"
exit 0

이 프로그램 은 "Hello World"라 는 가장 전형 적 인 말 을 출력 합 니 다.
이것 은 출력 문자열 입 니 다. 변 수 를 출력 하려 면 아래 방식 을 사용 하 십시오.
echo $VarName

달러 기호 ($) 에 변수 이름 을 추가 하 는 방식 으로 변 수 를 출력 합 니 다.
순환 하 다.
순환 은 세 가지 로 나 뉜 다. while 순환, until 순환, for 순환
while 순환 형식:
while [판단 식]
do
\# 프로그램 세그먼트
done
판단 식 을 만족 시 킬 때 순환 에 들 어가 고 순환 의 주 체 는 바로 중간의 절차 구간 으로 do 로 시작 하여 done 으로 끝난다.
until 순환 형식:
until [판단 식]
do
\# 프로그램 세그먼트
done
판단 식 이 성립 되면 순환 을 멈춘다.나머지 는 while 순환 과 유사 하 다.
for 순환
for 순환 은 모두 세 가지 형식 이 있 습 니 다.
1. 유한 개, 불규칙 한 순환 값 에 적용
for 변수 이름 in 매 거 진 값 1 매 거 진 값 2 매 거 진 값 3 
do
\# 프로그램 세그먼트
done
1. 변수 이름, 달러 부 호 를 추가 할 필요 가 없습니다.
2. 여러 개의 값 을 매 거 할 수도 있 고 하나의 매 거 진 값 에 여러 개의 데 이 터 를 포함 할 수도 있 습 니 다. 예 를 들 어 'ls' 가 나열 한 파일 이름 은 같은 변수 에 저장 한 다음 에 반복 해서 옮 겨 다 닐 수도 있 습 니 다. 이때 하나의 변수 이름 만 쓰 면 됩 니 다.
2. 순서대로 증가 하고 매번 증가 치가 1 인 경우 에 적용
for 변수 이름 in $(seq 시작 값 종료 값)
do
\# 프로그램 세그먼트
done
seq 는 sequence 의 줄 임 말로 연속 적 인 뜻 이 있 기 때문에 프로그램 은 시작 값 부터 하나씩 추가 합 니 다.
3. 일정한 증가 규칙 이 있 고 매번 증가 하 는 값 은 같 지만 같 지 않 은 경우 에 적용
for (초기 값, 제한 값, 실행 보폭)
do
\# 프로그램 세그먼트
done
초기 값 부터 제한 값 까지 보폭 을 늘 립 니 다.
판 가름
판단
1. 단일 분기
if [조건 판단];then
\# 처리
fi
2. 두 갈래
if [조건 판단];then
\# 처리
else
\# 처리
fi
3. 여러 갈래
if [조건 판단];then
\# 처리
elif [조건 판단];then
\# 처리
else
\# 처리
fi
지금까지 Shell 스 크 립 트 의 기본 구 조 는 이미 알 고 있 습 니 다. 이론 적 으로 모든 Shell 스 크 립 트 를 쓸 수 있 습 니 다!
골격 과 혈육 이 모두 살 아 있 으 니 이제 문제 에 대한 해결 방법 을 이런 문구 로 표현 하면 된다.
처음부터 말 했 듯 이 Shell 스 크 립 트 는 명령 의 쌓 인 것 이다. 문법 논리 구 조 를 알 게 된 후에 그 다음은 개인의 명령 사용 숙련 도 를 보 는 것 이다. 이것 은 개인의 수련 에 달 려 있다.

좋은 웹페이지 즐겨찾기