삽입 식 학습 노트 (11) -- 셸 스 크 립 트 프로 그래 밍
6953 단어 Lunix프로 그래 밍 및 응용셸 프로 그래 밍
이 장의 내용
셸: 영어 단어 셸 은 '조개' 로 직역 할 수 있 습 니 다.조 개 는 동물 이 외적 으로 보호 하 는 도구 이다.이렇게 보면 리 눅 스 의 셸 은 리 눅 스 커 널 의 외부 보호 도구 이 고 사용자 와 커 널 간 의 상호작용 을 완성 하 는 것 을 책임 진다.총괄 적 으로 셸 은 Liux 명령 집합 의 총칭 으로 명령 행 에 속 하 는 인간 인터페이스 입 니 다.
셸 스 크 립 트: 셸 스 크 립 트 언어 는 해석 형 언어 이 고 셸 스 크 립 트 는 본질 적 으로 셸 명령 의 질서 있 는 집합 입 니 다.
sell 명령 은 sell 스 크 립 트 의 일부분 이 고 sell 스 크 립 트 는 sell 명령 을 바탕 으로 더욱 추상 적 이 라 고 할 수 있다.
셸 변수
셸 은 사용자 가 변 수 를 만들어 데 이 터 를 저장 할 수 있 지만 데이터 형식 (정형, 문자, 부동 소수점) 은 지원 되 지 않 습 니 다. 변 수 를 부여 하 는 값 을 모두 문자열 문자 로 해석 합 니 다.
보통 다음 네 가지 유형 변수 로 나 뉜 다.
1) 사용자 정의 변수: 말 그대로 로 컬 변수 라 고도 하 며 현재 셸 에서 만 적 용 됩 니 다.
2) 위치 변수 즉 명령 행 인자: 변수 에 저 장 된 것 은 시스템 운영 환경 과 관련 된 데이터 3) 미리 정 의 된 변수 입 니 다. Bash 에서 정 의 된 변 수 는 변수 이름 을 사용자 정의 할 수 없고 변수 역할 도 고정 되 어 있 습 니 다.
4) 환경 변수: 스 크 립 트 에 매개 변수 나 데 이 터 를 전달 하 는 데 사 용 됩 니 다. 변수 이름 은 사용자 정의 할 수 없고 변수 역할 은 고정 되 어 있 습 니 다.
1) shell ,
$ COUNT=1
2) : $
$ echo $HOME
3) Linux Shell/bash
$Y=y
$ X=$Y
$ echo $X
y
4) unset
$ Z=hello
$ echo $Z
hello
$ unset Z
$ echo $Z
$0 ,
$1,$2,……$9
$#
$@ :“$1,$2,……$9”
$?
$* :“$1,$2,……$9”
$$ ID
shell
HOME: /etc/passwd
IFS:Internal Field Separator, ,tab
PATH :shell
PS1,PS2: ($) (>)
TERM: , vt100,ansi,vt200,xterm
3. 셸 프로그램의 문장
셸 프로그램 은 0 또는 여러 개의 셸 문장 으로 구성 되 어 있다.셸 문 구 는 세 가지 유형 을 포함한다. 설명 성 문, 기능 성 문 과 구조 성 문 구 를 포함한다.
【1】
, , .
# , . :
#! /bin/sh
# ------> OS shell
#
#
command_1
command_2 # command_2
……
#
command_m
……
command_n # commandn_
……
【2】
(1) ( )
read , , :
read var
var
read var1 var2 var3
(word) var1, var2, …… .
read , , 。
(2)
# example1 for read
echo "Input your name: \c"
read username
echo "Your name is $username"
#example2 for read
echo "Input date with format yyyy mm dd: \c"
read year month day
echo "Today is $year/$month/$day, right?"
echo "Press enter to confirm and continue\c"
read answer
echo "I know the date, bye!"
(3) expr
expr , (+)、 (-)、 (\*)、 (/) (%) 。
:
$ expr 12 + 5 \* 3 *
27
$ expr 3 - 8 / 2
-1
$ num=9
$ sum=`expr $num \* 6 `
$ echo $sum
54
구조 적 인 문 구 는 조건 테스트 문, 다 중 분기 문, 순환 문, 순환 제어 문 등 으로 나 눌 수 있다.여기 서 일일이 예 를 들 지 않 고 단지 이 문장의 사용 방법 을 소개 할 뿐이다.
(1)
if…then…fi
:
if
then
fi
1) , ; if , fi 。
2)if fi , ;
3) , 。
(2) if…then…else…fi
:
if
then 1
else 2
fi
, 1 , if ; 2 , if .
: , .
(1)
case…esac
case , . :
case in
1)
1
;;
2 | 3)
2
;;
……
n)
n
;;
esac
:
1)case
2) ,
3) “|”
4) , case
5) n *
6)
(1) for
1) , for 。
do done 。 :
for in
do
done
2) , , .
. , 。
3) , for “in ” 。
【1】 while
(1) :
while
do
done
1)while , , ,
, , 。
2)while 。
【2】
(1) break continue
break n n ;
continue ,
continue n n .
. prog7 :
prog7 …
, 1~10 , 。
함수
셸 함 수 는 과정 을 향 해 함수 의 정의 와 호출 측면 에서 볼 때.
함수 호출 형식: 방식 1: valuename=`function_name [arg 1 arg 2...] ` 함수 의 모든 표준 출력 은 주 프로그램의 변수 방식 2: function 에 전달 되 었 습 니 다.name [arg1 arg2 … ]echo $?
함수 의 반환 상태 가 져 오기
실례:
check_user( ) { #
user=`who | grep $1 | wc -l`
if [ $user –eq 0 ]
then
return 0 #
else
return 1 #
fi
}
while true # MAIN, Main, main: program begin here
do
echo "Input username: \c"
read uname
check_user $uname # , uname
if [ $? –eq 1 ] # $?
then echo "user $uname online"
else echo "user $uname offline"
fi
done
PS: 함수 에 정 의 된 변 수 는 기본적으로 전역 적 입 니 다. (스 크 립 트 의 다른 모든 곳 에서 이 변 수 를 방문 할 수 있 습 니 다) 변 수 를 설명 하 는 역할 영역 에 만 접근 하려 면 Local 설명 을 추가 해 야 합 니 다.
Local variable_name =value
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Windows 는 Vagrant & VirtualBox 를 사용 하여 가상 개발 환경 을 구축 합 니 다.다음으로 이동:http://blog.csdn.net/tojohnonly/article/details/70151040 Vagrant 가상 개발 환경 을 구축 하 는 도구 로 우 리 는 Vagrant 를 통 해 리 눅 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.