2022-03-29 Shell_script_1

shell script

Shell script를 사용하면 명령어를 묶어서 실행할 수 있다.

유닉스에선 셀 스크립트, 도스와 원도우 cmd.exe에선 배치파일(batch, .bat확장자)라고 지칭.

여러 명령어를 한번에 묶어서 실행할 수 있고 심지어 변수, 조건문, 반복문도 사용할 수 있다.

결국 프로그래밍 언어와 비슷해졌다;;

shell도 여러 종류가 있다.

리눅스에 기본 장착된 shell은 bash다.

shell을 확장해 만들었다. 한번 살펴보자.


예제

아직 수업에서 진도가 나가지 않은 관계로 맛보기로 보여준 예제만 정리하겠다.

vi read.sh

////////////////VI EDITOR///////////////////
#!/bin/bash

read -p "Input your name: " varname 
echo "I have your name given by " $varname

////////////////////////////////////////////

chmod a+x read.sh

./read.sh
Input your name: tired_i
I have your name given by tired_i
Code language: Bash (bash)

#!은 스크립트를 실행할 shell을 설정한다는 의미다.

“정확하게는 이 밑에 작성된 코드들이 /bin/bash라는 프로그램을 통해서 해석되어야 한다”는 의미다.

read로 입력값을 받아서 varname에 넣어준다.

여기서 $는 value를 보여준다.

그래서 ./read.sh 을 실행하고 입력하면 varname의 value를 출력해준다.

실행하기 전에 실행 권한을 획득하는 것은 잊지 말아 주세요.

vi Hello.sh

/////////////////VI EDITOR//////////////////////

#!/bin/bash

while True; do
    echo "Hello World"
    sleep 1 
done

/////////////////VI EDITOR//////////////////////

chmod a+x Hello.sh

./Hello.sh
Code language: Bash (bash)

2022-04-05 예제 추가

expr 1 + 3

expr은 리눅스 터미널에서 기본적으로 제공하는 계산기 기능이다.

expr는 다른 명령어처럼 요소들은 띄어쓰기로 구분되어야 한다.

expr 1 + 2expr 1+2는 다르다.

expr의 자세한 사용법은 아래를 참고해라.

참고: https://storycompiler.tistory.com/111 [아프니까 개발자다]

vim exprTest.sh

---------------------vim--------------------
#!/bin/bash

MSG=`expr 1 + 2`

echo $MSG
--------------------------------------------

chmod a+x exprTest.sh

./exprTest.sh
Code language: PHP (php)

` 를 혼동하지 마라 둘은 다른 것이다.

sh에서 ` 은 감싸고 있는 명령어를 실행하고 그 실행값을 반환한다.

 

댓글 남기기