검색결과 리스트
글
programming language
c언어는 컴파일언어의 특성을 갖고있고 자바는 컴파일과 인터프리터 언어의 성격 둘다 갖고있다
-> compiler언어
소스코드 (*.c)> compiler(compile) > machine code(*.exe)
우리가 작석한 소스코드를 컴퓨터가알아들을수 있는 머신코드로 바꿔야하는데 바꾸는 이 작업을 컴파일이라함
장점 : 소스코드를 머신코드로 모두 변환해서 실행키기때문에 해당머신에 최적화되서 빠르다 . 수행속도면에서 효율적이다,
에러를찾는데 편함. 일단 컴파일에서 에러안나면 문법적으론 완벽하다고 할 수 있음. (오류처리에있어 장점이있다)
단점 : 시스템에 종속적이다. 컴파일하면 타겟머신에 맞는 머신코드가 나옴 . 그 시스템에서밖에 사용못한다.
-interpreter 언어
컴파일러가 존재하지않고 인터프리터가 있음
소스코드 > interpreter라는 프로그램으로 소스코드가 들어감 .
인터프리터는 소스코드를 한줄한줄 읽고 한줄씩 머신코드로 바꾸고 바로 실행해버림 .
장점 : 시스템에 종속적이지 않다 . 작성한소스코드를 인터프리터만 있으면 무슨 시스템이든 상관없이 실행된다.
단점 : 느리다. 오류처리에 있어서 컴파일 언어처럼 엄격하게 하지않음
쉘스크립트 실습하기
쉘스크립트를 작성할때에는 터미널에서 입력하는 것과 같이 입력하면 된다.
cd 바탕화면 (바탕화면으로 워킹디렉토리 바뀜)
vi에디터로 쉘스크립트파일을 만든다.
vi test.sh 명령어 입력(.sh는 이 파일이 쉘스크립트파일이라는것을 알려주기 위한것임)
vi에디터가 열리면 에디트모드로 바꿔주는 명령어 i를 입력한후
#!/bin/bash // 본어게인쉘이 이 쉘스크립트를 실행시켜준다는 뜻이다
echo "이것은 연습이다"
이렇게 입력해준다.
(esc 누르고 :wq 입력해서 vi를 빠져나온다)
바탕화면에 쉘스크립트 파일이 생긴다
ls -al 명령어 입력해서 파일 퍼미션확인해보면 -rw-r--r-- 로 되어있다
- r w - r - - r - -
오너 그룹 other
오너는 읽고쓰기는 가능한데 실행권한이 없다. 그래서 쉘 스크립트를 실행할 수 없다. 퍼미션을 바꿔줘야한다
퍼미션을 바꾸는 명령어 chmod 777 test.sh 을 입력한다 (777은 편의상 한것이다)
ls -al 명령어를 입력해서 파일퍼미션이 -rwxrwxrwx로 바뀐것을 확인한다
이제 실행가능해진다.
./test.sh 입력해서 실행시킨다 (./ 이거는 현재폴더 밑에 라는뜻)
"이것은연습이다"가 출력됨
프로그램 변수
쉘스크립트에서 사용하는 변수는 c언어에서처럼 데이터타입이 없다
변수에 값 대입할때
- a=10; // =의 양쪽으로 공백을 삽입하면 안된다
- b="안녕" // 데이터타입상관없이 대입가능
조건문 만약 ~라면 이라는 뜻을 가지고 있으며, 다양한 형식으로 표현할 수 있다.
c 언어 | 쉘 스크립트 |
man=10; woman=20;
If(man>woman){ } |
if [ $man -gt $woman ]; then echo $man else echo $ woman fi |
쉘스크립트에서 이것 부분에 띄어쓰기를 유의해서 해야한다.
c언어에서 크기를 비교하는 연산자인 > , < , == 등이 쉘스크립트에서는 리다이렉션 기호로 해석될수있기때문에 예약어를사용해야한다
if 문을 끝낼때는 끝난다는 의미로 fi를 입력해준다
순환문 사용자가 실행하고자 하는 구문을 원하는 횟수만큼 반복하고자 할때 사용
for문
c언어 | 쉘스크립트 |
Int a=0; For(a=0; a<10; a++){
} |
for 변수 in list1 list2 list3 do statements done |
쉘스크립트에서 for문을 작성할 때에는 for 뒤에 사용할 변수(kk)를 써주고 키워드 in을 써 준다,
list1을 변수에 넣고 루프 수행하고 list2를 변수에 넣고 루프 수행하고 list3을 변수에 넣고 루프수행한다는 뜻이다
in 다음부터있는 공백 만큼 루프를 순환한다
while문
c언어 | 쉘스크립트 |
Int a=0;
While(a<100){ a++; } |
while [ $kk –lt 100 ] do echo $kk; let kk+=1 done |
쉘스크립트에서 while문을 작성할 때에는 while 다음에 소괄호대신 대괄호를 써주고 괄호안에 조건문을 써 준다.
while문에서도 이부분에서 띄어쓰기를 유의해야 한다
let 이라는 키워드를 사용해서 변수를 1 증가시킨다. 원래 변수앞에 $를 붙이지만 let연산할때는 붙이지 않는다.
함수 사용
function aa { //c에서처럼 함수이름 뒤에 ()안붙임
echo “함수”;
}
----------------------------------------------------
While [ kk –lt 100 ]
Do
aa; //인자없는 함수 호출
let kk+=1
done
----------------------------------------------------
While [ kk –lt 100 ]
Do
aa 100 200 300 400; //인자있는 함수 호출
let kk+=1
done
값을 입력받고싶을때
read 키워드를 사용하면 된다.
While [ kk –lt 100 ]
Do
aa;
read bb; // 입력받는 키워드 read
echo $bb;
let kk+=1
done
[출처] 쉘스크립트 (리눅스 기본이론 ch10)|작성자 yeeeeahap
RECENT COMMENT