- [리눅스] 쉘 프로그래밍2020년 06월 18일
- 홀쑥
- 작성자
- 2020.06.18.:13
쉘프로그래밍
shell : 시스템 과 사용자 간의 인터페이스
shell script : 쉘에서 실행하도록 작성된 프로그램( 확장자 sh)
*컴파일 없이 바로 터미널에서 실행
- 속도 빠름
- 컴파일이 없다 => 오타/실수 잡지 못함echo는 출력 $USER, $HOSTNAME 는 시스템변수
sh로 실행은 가능
바로 실행하려니 허가 거부 => 실행권한이 없음
권한 수정
sh파일 만들기
[실행방식]
- sh파일명
- ./파일명 (execute 권한이 있어야한다) 기본적으로 만들 땐 실행권한이 없음
- 선언 앞 뒤로 공백있으면 안됨!
- ' ' 와 " " 다름
- ' ' 는 단순 문자로 취급
- " " 에는 변수 사용가능
입력 받기
숫자계산
- 쉘 스크립트에서 변수값은 모두 문자열
- 문자열을 숫자로 변환 : `expr 변수` ( `는 탭 위에 바 표시)
주의 ! 연산자 양 옆은 공백!
- 특수기호 앞엔 \표시
- 특수기호 양 옆은 공백
- *는 특수기호 /는 특수기호 아님
두 수를 입력받고 두 수의 곱과 두수의 평균을 출력
결과
3. 매개변수
- 자바의 main() 함수의 arg같은 느낌
- 첫번째 값은 파일의 이름
var.sh 생성 후 작성
결과
4. 조건문
- if [ 조건 ] #대괄호, if, 조건 사이에 공백 필수
- then
참인경우
- elif [ 조건 ]
- then
다른 경우
- else
거짓인 경우
- fi #if문 종료
결과
매개변수 두개가 같으면 동일
다르면 다름
결과
5. case 문
- case 변수 in
- 경우1) 명령문;;
- 경우2) 명령문;;
- *) 그외 명령문;;
- esac
결과
조건 연산자
-eq (equal) / - neq (not equal) / -gt(greater than) / -ge(greater equal) / -lt(letter than) / -le(letter equal) / ! (not)점수를 입력받아 A~F학점 출력 (case문 이용)
결과
파일 관련 옵션
-f : 파일이면 true
-d : 디렉토리이면 true
-e : 존재하면 true
-r : 읽기 가능하면 true
-w : 쓰기 가능하면 true
-x : 실행 가능하면 true
-s : 파일의 크기가 0이 아니면 true
결과
논리 연산자
- if [A] && [B] if [A -a B] AND연산자
- if [A] || [B] if [A -o B] OR연산자
ex) if [A && B] => 에러
결과
for
- for 변수 in 값1 값2 값3 ...
- do
반복할 문장
- done
결과
- for 변수 in `seq 초기값 마지막값` #python의 range와 비슷
- do
반복할 문장
- done
- for ((초기값 ; 조건문 ; 증가치)) # 괄호 두개 java와 비슷
- do
반복할 문장
- done
결과
while
- while [ 조건 ]
- do
반복할 문장들
- done
break / continue / return
날짜
$(date)
결과
따로 자르고 싶을 때
set $(date)
$숫자 로 사용
결과
'OS > Linux' 카테고리의 다른 글
[리눅스] 오라클 Oracle 11g XE 설치 (1) 2020.06.20 [리눅스] java,tomcat,PuTTY,winscp설치 (0) 2020.06.19 [리눅스] 쉘프로그래밍 제어문 예제 (0) 2020.06.19 [리눅스] CentOS7 VMware에 설치 (2) 2020.06.17 가상머신(VMware Workstation 15.5) 설치 과정 (0) 2020.06.14 다음글이전글이전 글이 없습니다.댓글