<while>

문법)

while [ 조건식 ]

do

   반복 수행할 내용

done

exit 0

 

기존 C언어의 while문과 비교했을때 확연한 차이가 있다.

while문의 조건식 안에는 1또는 :이 오면 항상 참이 된다.

그 후, 반복할 내용을 do~done사이에 넣어주면 된다.

간단한 실습을 통해 while문을 알아보자.

 

 

<실습 - 1>

while문을 이용해 1~10까지의 합을 구하는 프로그램을 만들어보자.




<실습 - 2>

이번에는 if문과 while문을 응용하여 IDPassword를 물어보는 프로그램을 짜보자.



테스트!


LIST

'OS > Shell Script' 카테고리의 다른 글

Shell Script - case~esac문  (0) 2016.04.27
Shell Script - for문  (0) 2016.04.27
Shell Script - if문, if~else문  (0) 2016.04.26
Shell Script - 변수와 산술계산  (0) 2016.04.25
Shell Script - 기본 작성  (0) 2016.04.25

<case~esac>

if문 같은 경우에는 참 혹은 거짓으로 사용할 때 유용하다. 여러가지 경우의 수를 나타내고 싶다면 case~esac문을 이용하면 편리하다


문법)

case 파리미터조건 in

경우의 수1)

   파라미터조건=경우의 수1 경우 수행

경우의 수2)

   파라미터조건=경우의 수경우 수행

경우의 수n)

   파라미터조건=경우의 수경우 수행

esac

exit 0


<실습>



LIST

'OS > Shell Script' 카테고리의 다른 글

Shell Script - while문  (0) 2016.04.28
Shell Script - for문  (0) 2016.04.27
Shell Script - if문, if~else문  (0) 2016.04.26
Shell Script - 변수와 산술계산  (0) 2016.04.25
Shell Script - 기본 작성  (0) 2016.04.25

<for>

문법)

for 변수 in 1 3...

do

   반복할 문장

done

 

C언어에서 다루는 for문이랑 완전 다르게 생겼다...

실습을 통해 알아보자


<실습 - 1>



첫번째 반복문에서는 변수 i에 첫번째 파라미터 값 10을 넣고 계산한다.

두번째 반복문에서는 변수 i에 두번째 파라미터 값 20을 넣고 계산...

마지막 반복문에서는 변수 i50을 넣고 계산한다.

 

 

<실습 - 2>

여기있는 test*.sh를 가지고 실습을 진행하겠다.




ls *.sh의 결과 값으로 총 6개의 test*.sh가 나올것이다.

파라미터 변수값을 하나씩 받아 filename에 대입한 후, 그 값을 가지고 for문을 수행한다.






LIST

'OS > Shell Script' 카테고리의 다른 글

Shell Script - while문  (0) 2016.04.28
Shell Script - case~esac문  (0) 2016.04.27
Shell Script - if문, if~else문  (0) 2016.04.26
Shell Script - 변수와 산술계산  (0) 2016.04.25
Shell Script - 기본 작성  (0) 2016.04.25

문법)

if [ 조건 ]

then

   참일 경우 실행되는 부분

fi

참고로 if [조건 ]에서 조건 사이에 띄워쓰기롤 꼭 해줘야한다.

 


<실습>



<if~else>

문법)

if [ 조건 ]

then

   참일 경우 실행되는 부분

else

   거짓인 경우 실행되는 부분

fi

 

<실습>




<조건문 산술 비교 연산자>

조건문에 들어가는 비교 연산자에 대해서 알아보자.

C언어에서는 조건문에 들어가는 비교연산자는 직감적으로 기호를 보면 알 수있었다.

예를 들어 a>b 이면 ab보다 크면 참인것이다.

하지만 리눅스 shell script에서는 직관적으로 알 수없다...





<실습>

비교연산자 실습을 해보자.




<조건문 파일 비교 연산자>

조건문에 산술뿐만 아니라 파일에 대하 비교연산자도 있다.




<실습>

/home/ban에 어떤 파일들이 있는지 살펴보자.



test4.sh을 이용해 실습한다.




test.sh파일이 존재하고 일반 파일일 경우 참으로 출력




test.sh파일이 존재하지 않다는 것은 파일이 없다는 의미(일반 파일이 안된다는 의미)이기 때문에 거짓으로 출력



LIST

'OS > Shell Script' 카테고리의 다른 글

Shell Script - while문  (0) 2016.04.28
Shell Script - case~esac문  (0) 2016.04.27
Shell Script - for문  (0) 2016.04.27
Shell Script - 변수와 산술계산  (0) 2016.04.25
Shell Script - 기본 작성  (0) 2016.04.25

<변수>

1. 쉘에서는 C언어와는 다르게 변수를 사용하기 전에 미리 선언하지 않아도 된다. 변수에 첫 값이 할당되면서 자동으로 생성되기 때문이다.

2. 모든 변수는 문자열로 취급된다. 숫자, 문자 등 모든 값을 넣어줘도 모두 문자열로 취급되기 때문에 주의해야 한다. (특히 숫자가 많이 햇갈림...)

3. 변수 이름은 대소문자를 구분해야한다.

4. 변수를 대입할 때 '=' 좌우에 공백이 있으면 에러난다.

 

<실습>




처음부터 살펴보자.

1. 공백이 있으면 안된다고 했다. test = good에 공백이 있기 때문에 에러난다.

2. 두번째는 저장이 잘 되어서 출력이 이상없이 되었다.

3. 공백문자가 있을때는 " "로 묶어줘야한다. 묶어주지 않아서 에러났다.

4. 공백문자가 있을때 " "로 묶었더니 잘 출력된다.

5. 숫자는 문자열로 저장된다.

 

'$'문자는 환경변수를 출력할 때 사용하는 문자인데, '$'문자도 출력하고 싶을때는 어떻게 할까?

1. ' '작은 따옴표로 묶어준다.

2. '$'문자 앞에 '\'를 붙인다.

 

<실습>



2번째와 3번째행을 보면 $test를 그대로 출력하고 있다. 위에 언급한 룰을 적용시켜 출력해보았다.

 


<산술계산>

숫자도 문자열로 취급되기 때문에 산술연산을 어떻게 해야할까 고민이 된다.

이럴때 사용하는 명령어는 expr이다.

그리고 `(역따옴표)도 같이 사용해주어야 한다.

 

<실습>




첫번째 행은 단순히 문자열로 출력하기 때문에 붙여서 쓴다.

두번째 행은 숫자로 출력하기 위해 모두 각 단어 마다 띄어쓰기를 해준다.

세번째 행은 괄호를 표현하기 위해 \(역슬래쉬)를 사용하며 연산자중에 *를 사용할때도 (특별한 경우임) \(역슬래쉬)를 해준다.

 




LIST

'OS > Shell Script' 카테고리의 다른 글

Shell Script - while문  (0) 2016.04.28
Shell Script - case~esac문  (0) 2016.04.27
Shell Script - for문  (0) 2016.04.27
Shell Script - if문, if~else문  (0) 2016.04.26
Shell Script - 기본 작성  (0) 2016.04.25

간단한 쉘 스크립트를 작성해보자.

 

test.sh파일




test.sh파일의 내용을 보자.

echo명령어는 화면에 출력할 때 사용하는 명령어이다.

'$'가 붙은 $USERNAMEprintenv 명령어를 사용했을 때 명시되는 USERNAME에 대한 환경변수를 의미한다. $HOSTNAME도 마찬가지다.



이번에는 실행하는 방법에 대해서 알아보자.

쉘 스크립트를 실행하는 방법은 2가지가 있다.

첫번째는 sh test.sh처럼 'sh'명령어를 이용하는 것이다.

두번째는 ./test.sh처럼 앞에 test.sh가 있는 경로명(여기서는 test.sh가 있는 디렉토리에 내가 있기 때문에 현재티렉토리인 ./을 사용)을 써준후,  뒤에 파일명을 입력하면 된다.

LIST

'OS > Shell Script' 카테고리의 다른 글

Shell Script - while문  (0) 2016.04.28
Shell Script - case~esac문  (0) 2016.04.27
Shell Script - for문  (0) 2016.04.27
Shell Script - if문, if~else문  (0) 2016.04.26
Shell Script - 변수와 산술계산  (0) 2016.04.25

+ Recent posts