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 [ kklt 100 ]

Do

aa; //인자없는 함수 호출

let kk+=1

done

----------------------------------------------------

While [ kklt 100 ]

Do

aa 100 200 300 400; //인자있는 함수 호출

let kk+=1

done

값을 입력받고싶을때

read 키워드를 사용하면 된다.

While [ kklt 100 ]

Do

aa;

read bb; // 입력받는 키워드 read

echo $bb;

let kk+=1

done