반응형

형식

funcName() {

  return
}

 

간단한 함수 실행

#!/bin/sh


sumFunc() {
	echo `expr $1 + $2`
}

echo "Plus first value and second value"

sumFunc 10 20

exit 0

 

 

함수 파라미터전달  ($1, $2 : 첫번째, 두번째 파라미터 파싱)

두 파싱된 값 더하기

#!/bin/sh


sumFunc() {
	echo `expr $1 + $2`
}

echo "Plus first value and second value"

sumFunc

exit 0

 

 

반응형
반응형

반복문 형식

for 반복변수 in 값1 값2 값3 ...
do
    반복구문
done

 

<< 간단 예시 10번 반복 >>

    in 뒤에 숫자를 입력하는 방법.

    in 뒤에 { 시작숫자 .. 끝숫자 } 을 이용하는 방법.

#!/bin/sh

for i in 1 2 3 4 5 6 7 8 9 10
do
  echo "value is ${i}"
done


for i in {1..10}
do
  echo "value is ${i}"
done


exit 0

 

 

<< 특정 값만큼 증가 반복 >>

    in 뒤에 {시작값..끝값..증가값}

#!/bin/sh

for i in {1..20..2}
do
  echo "value is ${i}"
done

exit 0

 

 

<< 리스트(List) 내부 인자를 반복 >>

#!/bin/sh

list="2 4 6 8 10"

for i in ${list}
do
  echo "value is ${i}"
done

exit 0

    *주의점 in 뒤에를 "2 4 6 8 10" 으로 넣으면 하나의 문자열로 간주

 

 

 

<< 특정 디렉터리 파일 모두 출력 >>

#!/bin/sh

for files in /root/*
do
  echo ${files}
done

exit 0

 

 

C언어 처럼 사용하기

<< C언어 처럼 반복문 >>

#!/bin/sh

for ((i=0; i<5; i++));
do
  echo "value is ${i}"
done

exit 0

 

<< 무한 반복문 >>

#!/bin/sh

for (( ; ; ));
do
  echo "infinite loops till you hit the \"ctrl+C\" buttom"
done

exit 0

 

기타 등등 for문에 대해서 더 자세한 내용은 아래 블로거님 참고

jhnyang.tistory.com/191

 

[리눅스 / 유닉스 / 셸 프로그래밍 ] 반복문 for문 루프(loop)! 문법, 활용예제, 같이 쓰면 좋은 구문,

[ Linux / Unix / Shell programming INDEX ] 안녕하세요~~ㅎㅎ 오늘은 반복문 중 for문에 대해서 포스팅을 이어가보도록 하겠습니다. ▼참고 배시 말고 일반 프로그래밍(C, C++ JAVA)에서 for문의 포스팅 [C, C+..

jhnyang.tistory.com

 

================================

while문 사용하기 (조건이 맞을 때까지 반복)

<< 무한 반복문 >>

    *주의점, [ ] 사이에는 반드시 공백이 필요

#!/bin/sh

while [ 1 ]
do
  echo "infinite loops till you hit the \"ctrl+C\" buttom"
done

exit 0

<< i 가 10보다 작을 때까지 반복 >>

  1씩 증가하면서 계속 합을 더해 나감

#!/bin/sh

hap=0
i=1

while [ ${i} -le 10 ]
do
  hap=`expr ${hap} + ${i}`
  i=`expr ${i} + 1`
done

echo "total SUM value : ${hap}"

exit 0

 

<< pw맞을때까지 반복 >>

#!/bin/sh

echo "plz enter you pw"
read pw

while [ ${pw} != "1234" ]
do
  echo "Wrong pw"
  read pw
done

echo "logged in"

exit 0

 

반응형
반응형

if 조건문 사용법

  *주의점

              대괄호  [  ]  의 앞 뒤는 반드시 공백이 있어야 함

              변수의 입력 방식 ${변수명}

              if 로 시작해서 fi 로 끝남

if [ 조건 ]
then
  참일 때 실행
if

- 예시 test.sh

#!/bin/sh

a=1

if [ ${a} == "1" ]
then
  echo "True"
else
  echo "False"
fi

exit 0

결과

같다(equal) 조건문 3가지

    문자열(string)이 같을 때

  1. == 

    값(value)이 같을 때

  2. =

  3. -eq

#!/bin/sh

a=1

if [ ${a} == "1" ]
then
  echo "True"
else
  echo "False"
fi

if [ ${a} = "1" ]
then
  echo "True"
else
  echo "False"
fi

if [ ${a} -eq "1" ]
then
  echo "True"
else
  echo "False"
fi

exit 0

 

반응형

 

다르다(negative equal) 조건문 2가지

     문자열(string)이 다를 때

  1. !=  

     값(value)이 다를 때

  2. -ne

#!/bin/sh

a=1

if [ ${a} != "1" ]
then
  echo "True"
else
  echo "False"
fi


if [ ${a} -ne "1" ]
then
  echo "True"
else
  echo "False"
fi

exit 0

 

b보다 a가 크다(greater than) 조건문

    -gt  ( a > b)

#!/bin/sh

a=1
b=2

if [ ${a} -gt ${b} ]
then
  echo "True"
else
  echo "False"
fi

exit 0

b 보다 a가 같거나 크다(greater equal) 조건문

    -ge  ( a >= b)

#!/bin/sh

a=1
b=2

if [ ${a} -ge ${b} ]
then
  echo "True"
else
  echo "False"
fi

exit 0

 

 

b 보다 a가 작다(less than) 조건문

    -lt  ( a < b)

#!/bin/sh

a=1
b=2

if [ ${a} -gt ${b} ]
then
  echo "True"
else
  echo "False"
fi

exit 0

b보다 a가 같거나 작다(less equal) 조건문

    -le  ( a <= b)

#!/bin/sh

a=1
b=2

if [ ${a} -le ${b} ]
then
  echo "True"
else
  echo "False"
fi

exit 0

 

 

 

<< 파일 관련 조건문 >>

-d ${파일명} 파일명 이 directory(디렉터리) 일 때 True
-e ${파일명} 파일명 이 존재하면 True (파일 폴더 가리지 않고 존재 확인)
-f ${파일명} 파일 유무 및 보통파일인지 확인
-g ${파일명} 파일명 에 Group id가 있으면 True
-r ${파일명} 파일명 이 readable(읽기 가능)이면 True
-s ${파일명} 파일명 의 크기가 0이 아니면 True
-u ${파일명} 파일명 이 user id가 있으면 True
-w ${파일명} 파일명 이 writable(쓰기가능)이면 True
-x ${파일명} 파일명 이 executable(실행 가능)이면 True

예) fileName의 경로에 해당 파일이 있는지 없는지 확인하는 예제

#!/bin/sh

fileName="/root/mybash.sh"

if [ -e ${fileName} ]
then
  echo "File is existed"
else
  echo "File is not existed"
fi

exit 0

해당 경로에 파일이 있음으로...
파일이 존재함

 

(알아두기)

NULL이 아니면 참

    -n

NULL이 맞으면 참

    -z

수식이 거짓이면 참(NOT조건)

    !수식

AND 조건

    &&

    -a

OR 조건

    ||

    -o

 

AND연산자 사용 예

#!/bin/sh

echo "Tell me your file name"
read fname

if [ -f ${fname} ] && [ -s ${fname} ] ;
then
  echo "existed"
else
  echo "non-existed or 0 size"
fi

exit 0

(결과) AND조건으로 파일 존재 유무 확인

 

 

더 자세한 사항은 아래 블로거님 참고

hand-over.tistory.com/32

 

Shell script(쉘) if 조건문, 조건식

안녕하세요. 오늘은 쉘 스크립트에서 if 문과 조건식 사용하는 방법을 포스팅할께요. if 문 사용법 if 문 형식은 아래와 같습니다. (if 문 후에 나오는 '[' 사이에 스페이스바가 들어가야 합니다.) if

hand-over.tistory.com

blackinkgj.github.io/shell-program/

 

[Linux Shell] Linux 쉘(sh)에서의 if문 사용

Linux 쉘(sh)에서 if문을 사용 해보도록 한다.

blackinkgj.github.io

 

반응형
반응형

<<Bash 변수 주의점>>

  모든 변수는 "String (문자열)" 으로 인식

  변수값에 공백이 필요하다면 " "으로 묶어야 함

  값 대입시 "=" 좌우로 공백 없어야 함

  대소문자를 구분

  변수 값을 출력할 때 echo $변수 사용

값 대입 테스트
값 출력 결과
대소문자 테스트

 

  유저가 입력하는 값을 넣을 때 read 변수 사용

유저 입력 후 출력 테스트

   $특수문자를 그대로 출력하고 싶으면 앞에 \를 붙임

 

 

<< 변수 Parsing >>

    parsingTest.sh 파일

#!/bin/sh

echo "First Parsing is  <$0>"
echo "Second Parsing is <$1>"
echo "Thrid Parsing is <$2>"

exit 0

파싱된 변수가 <>에 입력됨.

 

<<숫자 계산>>

변수에 입력되는 값은 모두 String(문자열) 취급, 숫자도 문자열 취급

차이점 보기 ($가 들어가야 변수로 인식), 계산된 값이 아니라 그냥 대입된 상수값만 나옴.

숫자 계산을 위해서는 expr 명령어 사용해야 함.

공백을 주지 않으면 하나의 String(문자열)으로 인식

* 덧셈, 뺄셈, 곱셈, 나눗셈

 

 

 

 

 

 

(아래 블로그 참고)

storycompiler.tistory.com/111

 

[Ubuntu/Linux] 쉘스크립트 expr의 모든 것

제어문과 변수까지 살펴보니 expr가 남았네요. expr까지 간단하게 살피고 나서는, 쉘스크립트 자체 문법보다는 쉘스크립트와 함께 쓰이는 유용한 명령어들을 살펴보겠습니다. 쉘스크립트가 명령

storycompiler.tistory.com

 

 

 

 

 

 

 

 

반응형
반응형

Bash 파일 만들기

 

만드는 방법은 텍스트 편집기 중 gedit 으로 만들어도 되고, vi 로 만들어도 된다.

해당파일의 확장명은 .sh 로 저장한다.

vi mybash.sh
gedit mybash.sh

기본적으로 bash shell을 만드는 구조

(시작 부: #!/bin/sh)

(끝 부 : exit 0)

#!/bin/sh

echo "User Name: " $USERNAME

exit 0

 

 

Bash파일 실행 방법.

 

1. sh명령어 이용

sh mybash.sh

2. execute 파일로 변경 후 실행

    (권한 주기전)

    권한을 주는 명령어.

chmod u+x mybash.sh

root에게 x가 추가되었다.

    x가 생기면, 실행가능한 파일이 된다. 그러면 파일명만 넣으면 실행된다.

./mybash.sh

 

반응형
반응형

리눅스에 사용되는 Shell은 대표적으로 bash가 있으며, 예전에는 csh (c shell)도 많이 사용했다.

사용하는 shell을 변경하는 방법은 아래 참고. 

ansan-survivor.tistory.com/397

 

[CentOS 7] CentOS 7 Shell 바꾸기, bash csh 바꾸기, 기본설정하기

현재 유저의 기본 사용 Shell 보기 (root 계정으로 진행) 현재 Terminal에서 바로 바꾸는 방법 그냥 커맨드를 입력하면 바뀐다. csh 현재 내가 무슨 shell인지 확인하는 법. echo $0 계정 자체의 Shell을 바꾸

ansan-survivor.tistory.com

리눅스는 윈도우와 달리 대소문자를 구분하므로 주의한다.

 

Bash Shell 의 기본 세팅된 환경변수 값, 자주쓰는 변수들...

 

    - 현재 사용자 홈디렉터리(Home directory) 확인

echo $HOME

    - 현재 설정된 언어

echo $LANG

    - 현재 사용자(User) 이름 확인, 현재 로그인된 이름(Log in Name) 확인

echo $USER
echo $LOGNAME

    - 현재 사용자(User) 이름 확인 (su 명령어로 계정을 바꿔도 맨처음 로그인 했던 계정)

echo $USERNAME

    - Bash Shell 경로 확인, Bash Version (버전) 확인

echo $BASH
echo $BASH_VERSION

    - 현재 사용자(/etc/passwd)에 설정된 Shell 확인

      (which bash : 현재 사용중인 bash의 경로를 찾는 것)

echo $SHELL
which bash

    - 현재 사용자 호스트이름(Host Name) 확인 (네트워크에서 사용되는 이름)

echo $HOSTNAME

    - 메일이 저장되는 경로

echo $MAIL

    - 현재 경로

echo $PWD

  - 현재 운영체제 확인

echo $OSTYPE

 - 명령어 정보를 담고 있는 폴더 (해당폴더에 넣으면 명령어 등록) 찾기

echo $PATH

 

 

 

반응형
반응형

현재 유저의 기본 사용 Shell 보기 (root 계정으로 진행)

 

현재 Terminal에서 바로 바꾸는 방법

그냥 커맨드를 입력하면 바뀐다.

csh

현재 내가 무슨 shell인지 확인하는 법.

echo $0

 

 

계정 자체의 Shell을 바꾸기

 

1. 사용자 계정 정보를 담고 있는 passwd 열기

vi /etc/passwd

2. 현재 사용자 계정 맨아래 있다. 기본 bash shell 사용인데, 이를 csh 으로 변경

 

 

반응형
1

+ Recent posts