Top 46 쉘 스크립트 109 Most Correct Answers

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 쉘 스크립트 on Google, you do not find the information you need! Here are the best content compiled and compiled by the Toplist.maxfit.vn team, along with other related topics such as: 쉘 스크립트 쉘 스크립트 if, 쉘 스크립트 연습 사이트, 쉘스크립트 짜기, 쉘 스크립트 문법, 쉘 스크립트 명령어 실행, 쉘 스크립트 의미, 리눅스 쉘 스크립트, 쉘 스크립트 활용


Linux – Shell script 1 : intro
Linux – Shell script 1 : intro


[Linux] 쉘 스크립트(Shell script) 기초

  • Article author: engineer-mole.tistory.com
  • Reviews from users: 11210 ⭐ Ratings
  • Top rated: 4.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [Linux] 쉘 스크립트(Shell script) 기초 쉘 스크립트란 간단히 말하자면 Unix커맨드등을 나열해서 실행하는 것이다. 언제 어떤 조건으로 어떠한 명령을 실행시킬 것인가, 파일을 컨텐츠를 … …
  • Most searched keywords: Whether you are looking for [Linux] 쉘 스크립트(Shell script) 기초 쉘 스크립트란 간단히 말하자면 Unix커맨드등을 나열해서 실행하는 것이다. 언제 어떤 조건으로 어떠한 명령을 실행시킬 것인가, 파일을 컨텐츠를 … 쉘 스크립트란? 쉘 스크립트란 간단히 말하자면 Unix커맨드등을 나열해서 실행하는 것이다. 언제 어떤 조건으로 어떠한 명령을 실행시킬 것인가, 파일을 컨텐츠를 읽어 들일 것인가, 로그 파일을 작성하는 것 등을..
  • Table of Contents:
[Linux] 쉘 스크립트(Shell script) 기초

쉘 스크립트란

기본 설정

기본 커맨드

if 조건

루프(반복문)

함수

티스토리툴바

[Linux] 쉘 스크립트(Shell script) 기초
[Linux] 쉘 스크립트(Shell script) 기초

Read More

Bash 입문자를 위한 핵심 요약 정리 (Shell Script) – 개발자스럽다

  • Article author: blog.gaerae.com
  • Reviews from users: 21133 ⭐ Ratings
  • Top rated: 3.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Bash 입문자를 위한 핵심 요약 정리 (Shell Script) – 개발자스럽다 Bash 입문자를 위한 핵심 요약 정리 (Shell Script) · 첫 시작은 문자 출력하기(Hello World) · 주석(Comments) · 함수(Function) · 변수(Variable) · 예약 … …
  • Most searched keywords: Whether you are looking for Bash 입문자를 위한 핵심 요약 정리 (Shell Script) – 개발자스럽다 Bash 입문자를 위한 핵심 요약 정리 (Shell Script) · 첫 시작은 문자 출력하기(Hello World) · 주석(Comments) · 함수(Function) · 변수(Variable) · 예약 … 개발자스럽다, Bash 입문자를 위한 핵심 요약 정리 (Shell Script), jasa desain grafis,desain grafis,desain grafis murah,jasa desain logo,desain murah,desain logo murah,desain logo,jasa desain,desain murah indonesia,bikin logo murah,jasa desain murah,logo murah
  • Table of Contents:
Bash 입문자를 위한 핵심 요약 정리 (Shell Script) - 개발자스럽다
Bash 입문자를 위한 핵심 요약 정리 (Shell Script) – 개발자스럽다

Read More

리눅스 (linux) 익히기: 쉘 스크립트 – 잔재미코딩

  • Article author: www.fun-coding.org
  • Reviews from users: 48086 ⭐ Ratings
  • Top rated: 3.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 리눅스 (linux) 익히기: 쉘 스크립트 – 잔재미코딩 3. 쉘 스크립트 쉘을 사용해서 프로그래밍을 할 수 있음 서버 작업 자동화를 위해 기본적으로 익혀둘 필요가 있음 기본 명령어를 기반으로 하며, 이에 몇 가지 문법이 … …
  • Most searched keywords: Whether you are looking for 리눅스 (linux) 익히기: 쉘 스크립트 – 잔재미코딩 3. 쉘 스크립트 쉘을 사용해서 프로그래밍을 할 수 있음 서버 작업 자동화를 위해 기본적으로 익혀둘 필요가 있음 기본 명령어를 기반으로 하며, 이에 몇 가지 문법이 … 3. 쉘 스크립트 쉘을 사용해서 프로그래밍을 할 수 있음 서버 작업 자동화를 위해 기본적으로 익혀둘 필요가 있음 기본 명령어를 기반으로 하며, 이에 몇 가지 문법이 추가되는 형태로, 일반적인 프로그래밍 언어와는 달리 간단하고, 쉽게 응용 가능 3. 쉘 스크립트 쉘을 사용해서 프로그래밍을 할 수 있음 서버 작업 자동화를 위해 기본적으로 익혀둘 필요가 있음 기본 명령어를 기반으로 하며, 이에 몇 가지 문법이 추가되는 형태로, 일반적인 프로그래밍 언어와는 달리 간단하고, 쉽게 응용 가능
  • Table of Contents:

3 쉘 스크립트¶

리눅스 쉘(bash) 기본 명령어 이해 및 실습

Ubuntu(우분투) 이해하기

리눅스 (linux) 익히기:  쉘 스크립트 - 잔재미코딩
리눅스 (linux) 익히기: 쉘 스크립트 – 잔재미코딩

Read More

셸 스크립트 – 위키백과, 우리 모두의 백과사전

  • Article author: ko.wikipedia.org
  • Reviews from users: 31296 ⭐ Ratings
  • Top rated: 3.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 셸 스크립트 – 위키백과, 우리 모두의 백과사전 셸 스크립트(shell script)는 셸이나 명령 줄 인터프리터에서 돌아가도록 작성되었거나 한 운영 체제를 위해 쓰인 스크립트이다. 단순한 도메인 고유 언어로 여기기도 … …
  • Most searched keywords: Whether you are looking for 셸 스크립트 – 위키백과, 우리 모두의 백과사전 셸 스크립트(shell script)는 셸이나 명령 줄 인터프리터에서 돌아가도록 작성되었거나 한 운영 체제를 위해 쓰인 스크립트이다. 단순한 도메인 고유 언어로 여기기도 …
  • Table of Contents:

기능[편집]

다른 스크립트 언어[편집]

장단점[편집]

같이 보기[편집]

각주[편집]

외부 링크[편집]

셸 스크립트 - 위키백과, 우리 모두의 백과사전
셸 스크립트 – 위키백과, 우리 모두의 백과사전

Read More

Shell Script 문법 정리

  • Article author: blog.d0ngd0nge.xyz
  • Reviews from users: 47131 ⭐ Ratings
  • Top rated: 3.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Shell Script 문법 정리 Shell Script는 Shell이나 command line 인터프리터에서 구동되도록 작성된 스크립트다. 리눅스와 유닉스에서는 Shell Script라는 단어를 사용하지만, … …
  • Most searched keywords: Whether you are looking for Shell Script 문법 정리 Shell Script는 Shell이나 command line 인터프리터에서 구동되도록 작성된 스크립트다. 리눅스와 유닉스에서는 Shell Script라는 단어를 사용하지만, …
  • Table of Contents:
[Shell Script Shell Script란]

Menu

Recent Posts

Shell Script 문법 정리
Shell Script 문법 정리

Read More

[LINUX] 📚 BASH 쉘 프로그래밍 문법 마스터 💯 총정리 (+ 연습예제)

  • Article author: inpa.tistory.com
  • Reviews from users: 14478 ⭐ Ratings
  • Top rated: 4.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [LINUX] 📚 BASH 쉘 프로그래밍 문법 마스터 💯 총정리 (+ 연습예제) Shell Script는 Shell이나 command line 인터프리터에서 구동되도록 작성된 스크립트다. 윈도우에서는 batch(배치파일, .bat) 을 한번쯤은 본적 … …
  • Most searched keywords: Whether you are looking for [LINUX] 📚 BASH 쉘 프로그래밍 문법 마스터 💯 총정리 (+ 연습예제) Shell Script는 Shell이나 command line 인터프리터에서 구동되도록 작성된 스크립트다. 윈도우에서는 batch(배치파일, .bat) 을 한번쯤은 본적 … Shell Script 란 Shell Script는 Shell이나 command line 인터프리터에서 구동되도록 작성된 스크립트다. 윈도우에서는 batch(배치파일, .bat) 을 한번쯤은 본적이 있을 것이다. bat 파일을 실행하면 프로그램..
  • Table of Contents:

Shell Script 란

쉘 스크립트 문법 정리 (Shell Programming)

BASH 쉘 스크립트 연습문제 코드

방문해 주셔서 감사드립니다

공지사항

최근 댓글 new

최근 글 new

인기 글 hot

티스토리툴바

[LINUX] 📚 BASH 쉘 프로그래밍 문법 마스터 💯 총정리 (+ 연습예제)
[LINUX] 📚 BASH 쉘 프로그래밍 문법 마스터 💯 총정리 (+ 연습예제)

Read More

[linux] 간단한 쉘 스크립트 (Shell Script) 작성 및 실행 해보기.

  • Article author: cheershennah.tistory.com
  • Reviews from users: 4673 ⭐ Ratings
  • Top rated: 4.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [linux] 간단한 쉘 스크립트 (Shell Script) 작성 및 실행 해보기. 쉘 스크립트 (Shell Script). shell을 사용해서 프로그래밍을 할 수 있다. 주로 리눅스 등 서버작업의 프로그래밍 시 사용되며 생각보다 자주 사용 … …
  • Most searched keywords: Whether you are looking for [linux] 간단한 쉘 스크립트 (Shell Script) 작성 및 실행 해보기. 쉘 스크립트 (Shell Script). shell을 사용해서 프로그래밍을 할 수 있다. 주로 리눅스 등 서버작업의 프로그래밍 시 사용되며 생각보다 자주 사용 … 쉘 스크립트 (Shell Script) shell을 사용해서 프로그래밍을 할 수 있다. 주로 리눅스 등 서버작업의 프로그래밍 시 사용되며 생각보다 자주 사용된다. 쉘 스크립트는 파일안에 스크립트 작성 후, 실행 시 해당..개발하는 생계형 코더의 개발블로그입니다.
    밥 벌어먹고 살아야죠. On my way, Keep going !!! 👊
    Youtube @치얼스헤나

  • Table of Contents:
[linux] 간단한 쉘 스크립트 (Shell Script) 작성 및 실행 해보기

티스토리툴바

[linux] 간단한 쉘 스크립트 (Shell Script) 작성 및 실행 해보기.
[linux] 간단한 쉘 스크립트 (Shell Script) 작성 및 실행 해보기.

Read More

쉘 스크립트 (Shell Script) – (Ⅰ)

  • Article author: www.linuxlab.co.kr
  • Reviews from users: 6830 ⭐ Ratings
  • Top rated: 4.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 쉘 스크립트 (Shell Script) – (Ⅰ) 쉘 스크립트란 쉘에서 사용할 수 있는 명령어들의 조합을 모아서 만든 배치(batch) 파일이다. 리눅스에서는 여러 명령어들을 파이프(pipe), 리다이렉션(redirection), … …
  • Most searched keywords: Whether you are looking for 쉘 스크립트 (Shell Script) – (Ⅰ) 쉘 스크립트란 쉘에서 사용할 수 있는 명령어들의 조합을 모아서 만든 배치(batch) 파일이다. 리눅스에서는 여러 명령어들을 파이프(pipe), 리다이렉션(redirection), …
  • Table of Contents:
쉘 스크립트 (Shell Script) - (Ⅰ)
쉘 스크립트 (Shell Script) – (Ⅰ)

Read More

Bash 쉘스크립트 개발 시작하기 – WikiDocs

  • Article author: wikidocs.net
  • Reviews from users: 13650 ⭐ Ratings
  • Top rated: 3.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Bash 쉘스크립트 개발 시작하기 – WikiDocs Bash 쉘스크립트 개발 시작하기 … 이 책은 처음으로 리눅스로 시스템을 운영하게 되면서 Bash 쉘로 스크립트를 작성하게 되는 개발자를 위해서 도움이 … …
  • Most searched keywords: Whether you are looking for Bash 쉘스크립트 개발 시작하기 – WikiDocs Bash 쉘스크립트 개발 시작하기 … 이 책은 처음으로 리눅스로 시스템을 운영하게 되면서 Bash 쉘로 스크립트를 작성하게 되는 개발자를 위해서 도움이 … 온라인 책을 제작 공유하는 플랫폼 서비스
  • Table of Contents:
Bash 쉘스크립트 개발 시작하기 - WikiDocs
Bash 쉘스크립트 개발 시작하기 – WikiDocs

Read More

리눅스 쉘 스크립트 마스터 – 인프런 | 강의

  • Article author: www.inflearn.com
  • Reviews from users: 33054 ⭐ Ratings
  • Top rated: 4.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 리눅스 쉘 스크립트 마스터 – 인프런 | 강의 리눅스 쉘 스크립트를 공부할까 말까 망설이는 당신에게 한 가지만 말하겠습니다. 해커처럼 멋있게 리눅스를 다루고 싶은가요? 쉘 스크립트를 모르는 … …
  • Most searched keywords: Whether you are looking for 리눅스 쉘 스크립트 마스터 – 인프런 | 강의 리눅스 쉘 스크립트를 공부할까 말까 망설이는 당신에게 한 가지만 말하겠습니다. 해커처럼 멋있게 리눅스를 다루고 싶은가요? 쉘 스크립트를 모르는 … 리눅스 쉘 스크립트를 공부할까 말까 망설이는 당신에게 한 가지만 말하겠습니다.
    해커처럼 멋있게 리눅스를 다루고 싶은가요? 쉘 스크립트를 모르는 해커를 상상할 수 있나요? 그럼 지금 바로 시작하세요!, – 강의 소개 | 인프런…
  • Table of Contents:

리눅스 입문 – 개념으로 탄탄히!!

페이스북 클론 – full stack 웹 개발

리눅스 쉘 스크립트

코알못에서 웹서비스 런칭까지 2021 제주 코딩 베이스캠프(Django)

리눅스 쉘 스크립트 마스터 - 인프런 | 강의
리눅스 쉘 스크립트 마스터 – 인프런 | 강의

Read More


See more articles in the same category here: toplist.maxfit.vn/blog.

[Linux] 쉘 스크립트(Shell script) 기초

728×90

쉘 스크립트란?

쉘 스크립트란 간단히 말하자면 Unix커맨드등을 나열해서 실행하는 것이다. 언제 어떤 조건으로 어떠한 명령을 실행시킬 것인가, 파일을 컨텐츠를 읽어 들일 것인가, 로그 파일을 작성하는 것 등을 할 수 있다.

기본 설정

예시로 다음과 같이 test.sh 파일을 작성한다.

#!/bin/sh echo “Hello, World!”

– 쉘 스크립트 파일은 기본적으로 .sh 확장자로 작성한다.

– 실제 코드를 작성하기 전에 맨 처음의 행에는 #!/bin/sh를 쓴다. 시스템에 지금부터 셸 스크립트를 쓴다는 사실을 알려주기 위함이다(여담이지만, #는 hash, !는 bang이므로 #!를 shebang이라고 부르기도한다). 그러나 bash의 독자적인 기능을 사용하는 경우 다르게 작성한다(#!/usr/bin/env bash).

– 쉘 스크립트 파일(test.sh)를 실행하기 위해서는, 터미널에서 파일이 저장된 장소에 가서 아래의 커맨드 중 하나를 선택해서 실행해야한다.

$ chmod 755 test.sh $ ./test.sh

$ sh test.sh

$ bash test.sh

파일을 실행시키면, 작성한 Hello, World!가 표시된다.

기본 커맨드

코멘트

# 로 코멘트 처리할 수 있다.

#!/bin/sh # 여기는 코멘트이다. # 코멘트처리된 구문은 실행되지 않는다. echo “Hello, World!”

입력/출력

echo로 출력, read로 입력할 수 있다.

#!/bin/sh read NAME echo “Hello, $NAME!”

실행하면 결과는 다음과 같다.

$ ./test.sh Tensai Hello, Tensai!

입력을 대기하고 있는 경우, 스크립트는 실행되지 않는다.

Bash에서는 -e플래그로 특수 텍스트를 이스케이프할 수 있다.

#!/bin/bash echo -e “Hello

$NAME!” #개행된다.

변수

– 변수의 이름으로써 영문자, 숫자 그리고 언더바가 사용된다.

– 변수에 값을 전달할 때는 = 의 앞,뒤에 공백 없이 작성한다. 문자열인 경우 “(쌍따옴표)로 감싼다.

– 변수에 액세스할 때 변수명의 앞에 $를 넣는다. 혹은 $넣어서 변수를 {}로 감싼다.

– 하나의 변수에 한 개의 값만 보존된다.

– 변수의 값이 덮어 쓰기되는 것을 방지하기 위해서는 readonly를 사용한다.

– 변수를 unset으로 삭제할 수 있다 (그러나 readonly변수를 삭제하는 것을 불가능하다).

#!/bin/sh var=”변수1″ VaR_2=”변수2” echo “Var_2=$VaR_2″ VaR_2=”VaR_2가 변경됐다” echo ${VaR_2} readonly var var=”readonly var를 바꿔보자”

실행결과는 다음과 같다.

$ ./test.sh Var_2=변수2 VaR_2가 변경됐다. shell.sh: line 11: var: readonly variable

특별한 변수

쉘 스크립트에서는 아래와 같은 특별한 변수가 있다.

변수 기능 $0 스크립트명 $1 ~ $9 인수, 첫 번째의 인수는 $1, 2번째 인수는 $2로 액세스 $# 스크립트에 전달된 인수의 수 $* 모든 인수를 모아 하나로 처리 $@ 모든 인수를 각각 처리 $? 직전에 실행한 커맨드의 종료 값(0은 성공, 1은 실패) $$ 이 쉘 스크립트의 프로세스 ID $! 마지막으로 실행한 백그라운드 프로세스 ID

#!/bin/sh echo “\$0(스크립트 명): $0” echo “\$1(1번째 인수): $1” echo “\$2(2번째 인수): $2” echo “\$#(인수의 수): $#” echo “\”\$*\”: \”$*\”” echo “\”\$@\”: \”$@\”” VAR=”exit값은0이 될 것이다.” echo $?

실행 결과는 아래와 같다.

$ ./test.sh first second 3rd $0(스크립트 명): test.sh $1(1번째 인수): first $2(2번째 인수): second $3(3번째 인수): 3rd $#(인수의 수): 3 “$*”: “first second third” “$@”: “first second third” 0

특수 문자

* ? [ ‘ ” ` \ $ ; & ( ) | ~ < > # % = 스페이트 탭 개행는 쉘 스크립트의 특수 문자이다. 문자열로써 사용할 때는 \를 앞에 쓴 다음에 쓴다.

변수 값의 치환

문법 설명 ${var} 변수 값을 바꿔 넣는다. ${var:-word} 변수가 아직 세팅되지 않거나 공백 문자열의 경우 word를 반환한다. var에는 저장되지 않는다. ${var:=word} 변수가 아직 세팅되지 않거나 공백 문자열의 word를 반환한다. var에 저장된다. ${var:?word} 변수가 아직 세팅되지 않거나 공백 문자열의 경우 치환에 실패하고, 스탠다드 에러에 에러가 표시된다. ${var:+word} 변수가 세팅되지 않은 경우 word가 반환된다. var에는 저장되지 않는다.

#!/bin/sh echo “1 – ${var:-wordSetInEcho1}” echo “2 – var = ${var}” echo “3 – ${var:=wordSetInEcho3}” echo “4 – var = ${var}” unset var echo “5 – ${var:+wordSetInEcho5}” echo “6 – var = $var” var=”newVarValue” echo “7 – ${var:+wordSetInEcho7}” echo “8 – var = $var” echo “9 – ${var:?StandardErrorMessage}” echo “10 – var = ${var}”

실행 결과

1 – wordSetInEcho1 2 – var = 3 – wordSetInEcho3 4 – var = wordSetInEcho3 5 – 6 – var = 7 – wordSetInEcho7 8 – var = newVarValue 9 – newVarValue 10 – var = newVarValue

배열 (Bash)

#!/bin/bash #bash shell로 배열을 작성하는 방법 ARRAY=(item1 item2 item3 item4) ARRAY[0]=”ITEM1″ ARRAY[2]=”ITEM3″ echo “ARRAY[0]: ${ARRAY[0]}” echo “ARRAY[1]: ${ARRAY[1]}” #모든 아이템에 액세스 echo “ARRAY[*]: ${ARRAY[*]}” echo “ARRAY[@]: ${ARRAY[@]}”

실행결과

$ ./test.sh ARRAY[0]: ITEM1 ARRAY[1]: item2 ARRAY[*]: ITEM1 item2 ITEM3 item4 ARRAY[@]: ITEM1 item2 ITEM3 item4

오퍼레이터

shell에서는 산수연산자로 `expr 숫자 연산자 숫자`를 이용한다.

연산자 의미 예 + 덧셈 echo `expr 10 + 20` => 30 – 뺄셈 echo `expr 20 – 10` => 10 \* 제곱 echo `expr 11 \* 11` => 121 / 나눗셈 echo `expr 10 / 2` => 5 % 나머지 echo `expr 10 % 4` => 2 = 자정 a=$b b의 값은 a에 저장된다 == 동일 [ “$a” == “$b” ] $a과 $b가 동일하는 경우 TRUE가 반환된다. != 다름 [ “$a” != “$b” ] $a과 $b가 동일하지 않는 경우 TRUE가 반환된다.

비교 의미 예 -eq 동일 [ “$a” -eq “$b” ] 와 $a와 $b가 동일한 경우 TRUE가 반환된다. -ne 다음 [ “$a” -ne “$b” ] $a와 $b가 동일하지 않은 경우 TRUE가 반환된다. -gt 보다 큼 [ “$a” -gt “$b” ] $a가 $b보다 큰 경우 TRUE가 반환된다. -lt 보다 작음 [ “$a” -lt “$b” ] $a가 $b보다 작은 경우 TRUE가 반환된다. -ge 보다 크거나 같거나 [ “$a” -ge “$b” ] $a가 $b보다 크거나 같은 경우 TRUE가 반환된다. -le 보다 작거나 같거나 [ “$a” -le “$b” ] $a가 $b보다 작거나 같은 경우 TRUE가 반환된다. ! (이)가 아니다 [ ! “$a” -gt “$b” ]$a가 $b보다 크지 않은 경우 TRUE가 반환된다. -o 어느쪽이든 [ “$a” -gt “$b” -o “$a” -lt “$b” ]$a가 $b보다 크거나 작은 경우 TRUE가 반환된다. (Bash 확장 / POSIX폐지 예정) -a 양쪽 [ “$a” -gt 90 -a “$a” -lt 100 ] $a가 90보다 크고 100보다는 작은 경우 TRUE가 반환된다. -z 문자열이 비었는가 [ -z “$a” ]$a에 어떤 것도 지정되지 않은 경우 TRUE가 반환된다. -n 문자열이 비었는가 [ -n “$a” ] $a에 어떠한 것이 지정되어 있다면 TRUE가 반환된다.

위의 오퍼레이터를 사용하여 if 조건을 작성한다.

if 조건

– if의 기본 작성법은 if [ 조건 ] then 커맨드 fi 이다.

– 조건과 일치하는 경우 then 뒤의 커맨드가 실행된다.

– 조건과 다른 경우 차례로 elif [ 조건 ]에 적힌 내용을 확인한다.

– 일치하는 조건이 없는 경우 else 다음의 커맨드가 실행된 후 종료된다.

– else가 존재하지 않는 경우, 그대로 종료된다.

#!/bin/sh if [ “$1” -gt “$2” ] then echo “1번째 인수가 2번째 인수보다 크다” elif [ “$1” -eq “$2” ] then echo “1번째 인수와 2번째 인수가 동일하다” else echo “1번째 인수가 2번째 인수보다 작다” fi

실행 결과

$ ./test.sh 2 7 1번째 인수가 2번째 인수보다 작다 $ ./test.sh 10 5 1번째 인수가 2번째 인수보다 크다 $ ./test.sh 9 9 1번째 인수와 2번째 인수가 동일하다

Switch 조건

– switch의 기초 작성법은 case 변수 in 조건・값) 커맨드 ;; esac이다.

– 조건・값이 변수와 일치하는 경우 그 곳에 적힌 커맨드가 실행된다.

#!/bin/sh DRINK=”coffee” case “$DRINK” in “beer”) echo “맥주입니다” ;; “juice”) echo “주스입니다” ;; “coffee”) echo “프로그래머가 마시면 커피로 변화!” ;; esac

실행결과

$ ./test.sh 프로그래머가 마시면 커피로 변화!

루프(반복문)

루프는

– break 키워드로 종료

– continue키워드로 현재의 루프를 건너 뛸 수 있다.

while 루프

조건과 일치할 때 반복된다.

#!/bin/sh a=0 while [ $a -lt 5 ] do echo $a a=`expr $a + 1` done

실행결과

$ ./test.sh 0 1 2 3 4

until 루프

while과 반대로, 조건과 일치할 때까지 반복된다.

#!/bin/sh a=0 until [ ! $a -lt 5 ] do echo $a a=`expr $a + 1` done

실행결과

$ ./test.sh 0 1 2 3 4

for 루프

– for의 기본 작성법은 for 변수 in 여러개의 값・변수・범위 do 커맨드 done

– 조건・값이 변수와 일치하는 경우 커맨드가 실행된다.

#!/bin/sh for var in 0 1 2 3 4 #범위의 작성법(Bash독자) => {0..4} do echo $var done

실행결과

$ ./test.sh 0 1 2 3 4

함수

쉘 스크립트에서는 함수를 작성하여 인용하는 것이 가능하다.

#!/bin/sh #함수를 작성한다 MyFunction () { echo “함수의 echo이다.” } MyParamFunc() { echo “인수1:$1 인수2:$2” } #함수를 호출한다 MyFunction MyParamFunc param1 param2

실행결과

$ ./test.sh 함수의 echo입니다. 인수1:param1 인수2:param2

참고자료

https://qiita.com/miyu/items/4fce490115272b87c887

https://qiita.com/zayarwinttun/items/0dae4cb66d8f4bd2a337

728×90

Bash 입문자를 위한 핵심 요약 정리 (Shell Script)

첫 시작은 문자 출력하기(Hello World)

hello.sh

chmod 700 hello.sh

echo

printf

#!/usr/bin/env bash echo “hello world” printf “hello world” printf “%s %s” hello world

주석(Comments)

#

함수(Function)

function

string_test() { echo “string test” } function string_test2() { echo “string test 2” echo “인자값: ${@}” } string_test string_test2 # 함수에 인자값 전달하기(공백의로 뛰어서 2개의 인자값을 넘김) string_test2 “hello” “world”

변수(Variable)

local

export

.bash_profile

# 전역 변수 지정 string=”hello world” echo ${string} # 지역 변수 테스트 함수 string_test() { # 전역 변수와 동일하게 사용함. 만약 local 뺀다면 전역 변수에 덮어씌어지게 됨 local string=”local” echo ${string} } # 지역 변수 테스트 함수 호출 string_test # 지역 변수 테스트 함수에서 동일한 변수 명을 사용했지만 값이 변경되지 않음 echo ${string} # 환경 변수 선언 export hello_world=”hello world…” # 자식 스크립트 호출은 스크립트 경로을 쓰면된다. /home/export_test.sh #환경 변수를 테스트하기 위해 export_test.sh 파일을 만들고 선언한 변수를 확인해본다. echo ${hello_world}

예약 변수(Reserved Variable)

문자 설명 HOME 사용자의 홈 디렉토리 PATH 실행 파일을 찾을 경로 LANG 프로그램 사용시 기본 지원되는 언어 PWD 사용자의 현재 작업중인 디렉토리 FUNCNAME 현재 함수 이름 SECONDS 스크립트가 실행된 초 단위 시간 SHLVL 쉘 레벨(중첩된 깊이를 나타냄) SHELL 로그인해서 사용하는 쉘 PPID 부모 프로세스의 PID BASH BASH 실행 파일 경로 BASH_ENV 스크립트 실행시 BASH 시작 파일을 읽을 위치 변수 BASH_VERSION 설치된 BASH 버전 BASH_VERSINFO BASH_VERSINFO[0] ~ BASH_VERSINFO[5] 배열로 상세정보 제공 MAIL 메일 보관 경로 MAILCHECK 메일 확인 시간 OSTYPE 운영체제 종류 TERM 로긴 터미널 타입 HOSTNAME 호스트 이름 HOSTTYPE 시스템 하드웨어 종류 MACHTYPE 머신 종류( HOSTTYPE 과 같은 정보지만 조금더 상세하게 표시됨) LOGNAME 로그인 이름 UID 사용자 UID EUID su 명령에서 사용하는 사용자의 유효 아이디 값( UID 와 EUID 값은 다를 수 있음) USER 사용자의 이름 USERNAME 사용자 이름 GROUPS 사용자 그룹( /etc/passwd 값을 출력) HISTFILE history 파일 경로 HISTFILESIZE history 파일 크기 HISTSIZE history 저장되는 개수 HISTCONTROL 중복되는 명령에 대한 기록 유무 DISPLAY X 디스플레이 이름 IFS 입력 필드 구분자(기본값: – 빈칸) VISUAL VISUAL 편집기 이름 EDITOR 기본 편집기 이름 COLUMNS 현재 터미널이나 윈도우 터미널의 컬럼 수 LINES 터미널의 라인 수 LS_COLORS ls 명령의 색상 관련 옵션 PS1 기본 프롬프트 변수(기본값: bash\$ ) PS2 보조 프롬프트 변수(기본값: > ), 명령을 “\”를 사용하여 명령 행을 연장시 사용됨 PS3 쉘 스크립트에서 select 사용시 프롬프트 변수(기본값: #? ) PS4 쉘 스크립트 디버깅 모드의 프롬프트 변수(기본값: + ) TMOUT 0 이면 제한이 없으며 time 시간 지정시 지정한 시간 이후 로그아웃

위치 매개 변수(Positional Parameters)

문자 설명 $0 실행된 스크립트 이름 $1 $1 $2 $3…${10} 인자 순서대로 번호가 부여된다. 10번째부터는 “{}”감싸줘야 함 $* 전체 인자 값 $@ 전체 인자 값( $* 동일하지만 쌍따옴표로 변수를 감싸면 다른 결과 나옴) $# 매개 변수의 총 개수

특수 매개 변수(Special Parameters)

문자 설명 $$ 현재 스크립트의 PID $? 최근에 실행된 명령어, 함수, 스크립트 자식의 종료 상태 $! 최근에 실행한 백그라운드(비동기) 명령의 PID $- 현재 옵션 플래그 $_ 지난 명령의 마지막 인자로 설정된 특수 변수

매개 변수 확장(Parameter Expansion)

string=”abc-efg-123-abc”

문자 설명 ${변수} $변수 와 동일하지만 {} 사용해야만 동작하는 것들이 있음(예: echo ${string} ) ${변수:위치} 위치 다음부터 문자열 추출(예: echo ${string:4} ) ${변수:위치:길이} 위치 다음부터 지정한 길이 만큼의 문자열 추출(예: echo ${string:4:3} ) ${변수:-단어} 변수 미선언 혹은 NULL일때 기본값 지정, 위치 매개 변수는 사용 불가(예: echo ${string:-HELLO} ) ${변수-단어} 변수 미선언시만 기본값 지정, 위치 매개 변수는 사용 불가(예: echo ${string-HELLO} ) ${변수:=단어} 변수 미선언 혹은 NULL일때 기본값 지정, 위치 매개 변수 사용 가능(예: echo ${string:=HELLO} ) ${변수=단어} 변수 미선언시만 기본값 지정, 위치 매개 변수 사용 가능(예: echo ${string=HELLO} ) ${변수:?단어} 변수 미선언 혹은 NULL일때 단어 출력 후 스크립트 종료,(예: echo ${string:?HELLO} ) ${변수?단어} 변수 미선언시만 단어 출력 후 스크립트 종료(예: echo ${string?HELLO} ) ${변수:+단어} 변수 선언시만 단어 사용(예: echo ${string:+HELLO} ) ${변수+단어} 변수 선언 혹은 NULL일때 단어 사용(예: echo ${string+HELLO} ) ${#변수} 문자열 길이(예: echo ${#string} ) ${변수#단어} 변수의 앞부분부터 짧게 일치한 단어 삭제(예: echo ${string#a*b} ) ${변수##단어} 변수의 앞부분부터 길게 일치한 단어 삭제(예: echo ${string##a*b} ) ${변수%단어} 변수의 뒷부분부터 짧게 일치한 단어 삭제(예: echo ${string%b*c} ) ${변수%%단어} 변수의 뒷부분부터 길게 일치한 단어 삭제(예: echo ${string%%b*c} ) ${변수/찾는단어/변경단어} 처음 일치한 단어를 변경(예: echo ${string/abc/HELLO} ) ${변수//찾는단어/변경단어} 일치하는 모든 단어를 변경(예: echo ${string//abc/HELLO} ) ${변수/#찾는단어/변경단어} 앞부분이 일치하면 변경(예: echo ${string/#abc/HELLO} ) ${변수/%찾는단어/변경단어} 뒷부분이 일치하면 변경(예: echo ${string/%abc/HELLO} ) ${!단어*}, ${!단어@} 선언된 변수중에서 단어가 포함된 변수 명 추출(예: echo ${!string*} , echo ${!string@} )

배열(Array Variable)

${array[1]}

# 배열의 크기 지정없이 배열 변수로 선언 # 참고: ‘declare -a’ 명령으로 선언하지 않아도 배열 변수 사용 가능함 declare -a array # 4개의 배열 값 지정 array=(“hello” “test” “array” “world”) # 기존 배열에 1개의 배열 값 추가(순차적으로 입력할 필요 없음) array[4]=”variable” # 기존 배열 전체에 1개의 배열 값을 추가하여 배열 저장(배열 복사 시 사용) array=(${array[@]} “string”) # 위에서 지정한 배열 출력 echo “hello world 출력: ${array[0]} ${array[3]}” echo “배열 전체 출력: ${array[@]}” echo “배열 전체 개수 출력: ${#array[@]}” printf “배열 출력: %s

” ${array[@]} # 배열 특정 요소만 지우기 unset array[4] echo “배열 전체 출력: ${array[@]}” # 배열 전체 지우기 unset array echo “배열 전체 출력: ${array[@]}”

변수 타입 지정(Variables Revisited)

declare

typeset

# 읽기 전용 # readonly string_variable=”hello world” 문법과 동일 함 declare -r string_variable # 정수 # number_variable=10 문법과 동일 함 declare -i number_variable=10 # 배열 # array_variable=() 문법과 동일 함 declare -a array_variable # 환경 변수 # export export_variable=”hello world” 문법과 동일 함 declare -x export_variable=”hello world” # 현재 스크립트의 전체 함수 출력 declare -f # 현재 스크립트에서 지정한 함수만 출력 declare -f 함수이름

논리 연산자(Logical Operators)

문자 설명 && , -a 논리 AND || , -o 논리 OR

산술 연산자(Arithmetic Operators)

문자 설명 + 더하기 – 빼기 * 곱하기 / 나누기 ** 누승(exponentiation), 거듭제곱(power) % modulo 나 mod (정수 나누기에서 나머지 값) += 상수값 만큼 증가(plus-equal) -= 상수값 만큼 감소(minus-equal) *= 상수값을 곱함(times-equal) /= 상수값으로 나눔(slash-equal) %= 상수값으로 나눈 나머지 값(mod-equal)

비트 연산자(Bitwise Operators)

문자 설명 << 비트 왼쪽 쉬프트(쉬프트 한 번당 2를 곱하는 것과 동일함) <<= left-shift-equal >> 비트 오른쪽 쉬프트(쉬프트 한 번당 2로 나눔) >>= right-shift-equal(<<=와 반대) & 비트 and &= 비트 and-equal | 비트 OR |= 비트 OR-equa ~ 비트 negate ! 비트 NOT ^ 비트 XOR ^= 비트 XOR-equa 기타 연산자(Miscellaneous Operators) 문자 설명 , 콤마 연산자(comma operator), 2개 이상의 산술 연산을 묶어줌 정수 비교(Integer Comparison) 문자 설명 -eq 같음 -ne 같지 않음 > , -gt 더 큼( > 이중 소괄호에서 사용 가능) >= , -ge 더크거나 같음( >= 이중 소괄호에서 사용 가능) < , -lt 더 작음( < 이중 소괄호에서 사용 가능) <= , -le 더 작거나 같음( <= 이중 소괄호에서 사용 가능) 문자열 비교(String Comparison) 문자 설명 = , == 같음 != 같지 않음 < ASCII 알파벳 순서에 더 작음 > ASCII 알파벳 순서에서 더 큼 -z 문자열이 NULL, 길이가 0인 경우 -n 문자열이 NULL이 아님 ${변수} 문자열이 NULL이 아님

파일 비교(File test operators)

문자 설명 -e 파일이 존재 -f 파일이 존재하고 일반 파일인 경우(디렉토리 혹은 장치파일이 아닌 경우) -s 파일이 존재하고 0보다 큰 경우 -d 파일이 존재하고 디렉토리인 경우 -b 파일이 존재하고 블록장치 파일인 경우 -c 파일이 존재하고 캐릭터 장치 파일인 경우 -p 파일이 존재하고 FIFO인 경우 -h 파일이 존재하고 한 개 이상의 심볼릭 링크가 설정된 경우 -L 파일이 존재하고 한 개 이상의 심볼릭 링크가 설정된 경우 -S 파일이 소켓 디바이스인 경우 -t 파일이 디스크립터가 터미널 디바이스와 연관이 있음 -r 파일이 존재하고 읽기 가능한 경우 -w 파일이 존재하고 쓰기가 가능한 경우 -x 파일이 존재하고 실행 가능한 경우 -g 파일이 존재하고 SetGID가 설정된 경우 -u 파일이 존재하고 SetUID가 설정된 경우 -k 파일이 존재하고 스티키 비트(Sticky bit)가 설정된 경우 -O 자신이 소유자임 -G 그룹 아이디가 자신과 같음 -N 마지막으로 읽힌 후에 변경 됐음 file1 -nt file2 file1 파일이 file2 파일보다 최신임 file1 -ot file2 file1 파일이 file2 파일보다 예전것임 file1 -ef file2 file1 파일과 file2 파일이 같은 파일을 하드 링크하고 있음 ! 조건이 안 맞으면 참(예: ! -e file )

반복문(for, while, until)

break

continue

# 지정된 범위 안에서 반복문 필요 시 좋음 for string in “hello” “world” “…”; do; echo ${string}; done # 수행 조건이 true 일때 실행됨 (실행 횟수 지정이 필요하지 않은 반복문 필요 시 좋음) count=0 while [ ${count} -le 5 ]; do echo ${count} count=$(( ${count}+1 )) done # 수행 조건이 false 일때 실행됨 (실행 횟수 지정이 필요하지 않은 반복문 필요 시 좋음) count2=10 until [ ${count2} -le 5 ]; do echo ${count2} count2=$(( ${count2}-1 )) done

조건문(if…elif…else…fi)

string1=”hello” string2=”world” if [ ${string1} == ${string2} ]; then # 실행 문장이 없으면 오류 발생함 # 아래 echo 문장을 주석처리하면 확인 가능함 echo “hello world” elif [ ${string1} == ${string3} ]; then echo “hello world 2” else echo “hello world 3” fi # AND if [ ${string1} == ${string2} ] && [ ${string3} == ${string4} ] ..생략 # OR if [ ${string1} == ${string2} ] || [ ${string3} == ${string4} ] ..생략 # 다중 조건 if [[ ${string1} == ${string2} || ${string3} == ${string4} ]] && [ ${string5} == ${string6} ] ..생략

선택문(case)

|

;;

# case문 테스트를 위한 반복문 for string in “HELLO” “WORLD” “hello” “world” “s” “start” “end” “etc”; do # case문 시작 case ${string} in hello|HELLO) echo “${string}: hello 일때” ;; wo*) echo “${string}: wo로 시작하는 단어 일때” ;; s|start) echo “${string}: s 혹은 start 일때” ;; e|end) echo “${string}: e 혹은 end 일때” ;; *) echo “${string}: 기타” ;; esac # //case문 끝 done

디버깅(Debugging)

echo

exit

tee

Bash 옵션(스크립트 실행 시) set 옵션(스크립트 코드 삽입) 설명 bash -n set -n , set -o noexec 스크립트 실행없이 단순 문법 오류만 검사(찾지 못하는 문법 오류가 있을수 있음) bash -v set -v , set -o verbose 명령어 실행전 해당 명령어 출력( echo ) bash -x set -x , set -o xtrace 명령어 실행후 해당 명령어 출력( echo ) set -u , set -o nounset 미선언된 변수 발견시 “unbound variable” 메시지 출력

마무리하며

여기서 인자(argument)와 매개변수(parameter)는 이름만 다를 뿐 의미는 같다.

Bash는 공백에 민감하다.

변수 사용은 생각하지 말고 ${변수} 이렇게 쓰자.

함께보기

Bash 입문자를 위한 기본적인 문법과 알고 있으면 좋은 것들만 정리했다.(이런 것도 있구나 싶을 정도만 이해하도록 간단한 설명과 예제로 작성됨)고전적이지만 “hello world” 단순 출력부터 시작해보자.파일명은로 만들고 실행해보자. 단 두줄이면 끝이다.(만일 실행이 안된다면 퍼미션을 변경해야되는데 뭔지 모르겠다면 일단 이렇게 해봐라.참고:> 문장을 출력하는데 자동으로 줄바꿈 됨참고:> C언어와 비슷함기호로 시작하면 주석이다.형식은 다른 언어와 차이는 없다. 그러나는 생략해도 된다.함수 명을 쓰면 함수가 호출이 되는데 주의할 것은 호출 코드가 함수 코드보다 반드시 뒤에 있어야 된다. 함수 코드 보다 앞에서 호출 시 오류가 발생한다.변수 사용시에는 “=” 기호 앞뒤로 공백이 없이 입력하면 대입연산자가 된다.그리고 선언된 변수는 기본적으로 전역 변수(global variable)다. 단 함수 안에서만 지역 변수(local variable)를 사용할 수 있는데 사용할려면 변수 명 앞에을 붙여주면 된다.그런데 전역 변수는 현재 실행된 스크립트 파일에서만 유효하다. 자식 스크립트에서는 사용 할 수 없는 변수다.변수 명 앞에을 붙여주면 환경 변수(environment variable)로 설정되어 자식 스크립트에서 사용 가능하다.환경 변수 사용시 예약 변수(reserved variable)에 주의하자.(참고로 환경 변수는에서 정의한다.)아래 예를 테스트하기 위한 변수:배열 변수 사용은 반드시 괄호를 사용해야 한다.(예:참고: 1차원 배열만 지원함Bash 변수는 타입을 구분하지 않고 기본적으로 문자열이다. 단 문맥에 따라서 연산 처리한다.그런데 불완전한 형태의타입 지정 명령을 지원한다.(두 명령은 동일함)참고: 코멘트에 있는 다른 문법 사용을 추천한다.반목문 작성 시 아래 명령어(흐름제어)을 알아두면 좋다.반복문을 빠져 나갈때:현재 반복문이나 조건을 건너 뛸때:조건문 작성 시 주의해야될 부분은 실행 문장이 없으면 오류 발생함정규식을 지원하며기호로 다중 값을 입력 가능하며 조건의 문장 끝에는기호로 끝을 표시한다.참고: 대문자와 소문자는 다른 문자다.간단하게는명령나명령어로 디버깅한다.다른 방법으로 실행 시 옵션을 주거나 코드에 한줄만 추가하면 해볼수 있다.

위키백과, 우리 모두의 백과사전

셸 스크립트(shell script)는 셸이나 명령 줄 인터프리터에서 돌아가도록 작성되었거나 한 운영 체제를 위해 쓰인 스크립트이다. 단순한 도메인 고유 언어로 여기기도 한다. 셸 스크립트가 수행하는 일반 기능으로는 파일 이용, 프로그램 실행, 문자열 출력 등이 있다.

셸 스크립트라는 말은 유닉스 셸을 위해 쓰인 스크립트를 말하는 반면, command.com(도스)과 cmd.exe (윈도우) 명령 줄 스크립트는 보통 배치 파일이라고 불리지만 이 글에는 두 개의 속성 모두를 논한다.

.sh라는 파일 확장자를 가진 파일이 특정 종류의 셸 스크립트를 가리키는 것이 보통이지만, 대부분의 셸 스크립트는 파일 확장자를 지니지 않는다.[1][2]

기능 [ 편집 ]

바로가기 [ 편집 ]

파일을 나열하는 명령어인 ls 버전을 만드는 예는 다음과 같다.

#!/bin/sh LC_COLLATE = C ls -FCas ” $@ ”

여기서 셔뱅은 어느 인터프리터가 스크립트의 나머지 부분을 실행할지를 가리킨다.

다른 예는 모든 파일과 디렉터리의 목록을 출력하는 바로가기로 사용할 수 있다.

#!/bin/sh clear ls -al

배치 잡 [ 편집 ]

셸 스크립트를 사용하면 명령 줄 인터페이스에 수동으로 입력해야 하는 여러 명령을 자동으로 연속 실행시킬 수 있으며, 사용자가 각 단계의 시퀀스마다 일일이 기다릴 필요가 없다.

#!/bin/csh echo compiling… cc -c foo.c cc -c bar.c cc -c qux.c cc -o myprog foo.o bar.o qux.o echo done .

일반화 [ 편집 ]

단순한 배치 잡들은 분리된 작업에 일반적이지만 반복, 테스트, 변수들은 사용자에게 훨씬 더 나은 유연성을 제공한다. JPEG 그림을 PNG로 변환하는 Bash(유닉스 셸의 하나) 스크립트는 다음과 같다.

#!/bin/bash for jpg ; do # use $jpg in place of each filename given, in turn png = ” ${ jpg %.jpg } .png” # construct the PNG version of the filename by replacing .jpg with .png echo converting ” $jpg ” … # output status info to the user running the script if convert ” $jpg ” jpg.to.png ; then # use the convert program (common in Linux) to create the PNG in a temp file mv jpg.to.png ” $png ” # if it worked, rename the temporary PNG image to the correct name else # …otherwise complain and exit from the script echo ‘jpg2png: error: failed output saved in “jpg.to.png”.’ > & 2 exit 1 fi # the end of the “if” test construct done # the end of the “for” loop echo all conversions successful # tell the user the good news exit 0

다른 스크립트 언어 [ 편집 ]

이 부분의 본문은 이 부분의 본문은 스크립트 언어 입니다.

장단점 [ 편집 ]

장점 [ 편집 ]

셸 스크립트를 기록하는 것은 다른 프로그래밍 언어의 같은 코드로 쓰인 것보다 훨씬 더 빠른 경우가 많다. 다른 해석 언어에 비해, 셸 스크립트는 컴파일 단계가 없기 때문에 스크립트는 디버깅을 하는 동안 빠르게 실행할 수 있다.

단점 [ 편집 ]

셸 스크립트를 사용함으로써 몇 가지 중대한 단점이 존재한다.

한 가지 단점으로는 실행되는 각 명령에 대한 잠재적으로 새로운 하부 프로세스의 수많은 필요에 따라 속도가 느려질 수 있다. 단순 sh 스크립트는 다양한 종류의 유닉스, 리눅스, BSD 운영 체제, therof 버전, 시스템 유틸리티와 잘 호환된다는 장점이 있지만 더 복잡한 셸 스크립트는 셸, 유틸리티, 다른 필수 요소 간의 약간의 차이가 많은 경우 실패할 가능성이 있다. 래리 월은 다음과 같은 유명한 말을 남겼다: “셸 스크립트보다 셸을 포팅하는 게 더 쉽다” 이와 비슷하게, 더 많은 복잡한 스크립트들은 셸 스크립트 언어 자체의 제한 안에서 실행할 수 있다. 이러한 제한 때문에 다양한 셸이 문제를 개선할 목적으로 고품질의 코드와 확장을 기록하기 힘들 수 있다.

같이 보기 [ 편집 ]

각주 [ 편집 ]

So you have finished reading the 쉘 스크립트 topic article, if you find this article useful, please share it. Thank you very much. See more: 쉘 스크립트 if, 쉘 스크립트 연습 사이트, 쉘스크립트 짜기, 쉘 스크립트 문법, 쉘 스크립트 명령어 실행, 쉘 스크립트 의미, 리눅스 쉘 스크립트, 쉘 스크립트 활용

Leave a Comment