Search

'Shell script'에 해당되는 글 5건

  1. 2019.06.18 쉘 스크립트 작성(5)
  2. 2019.06.18 쉘 스크립트 작성(4)
  3. 2019.06.16 쉘 스크립트 작성(3)
  4. 2019.06.16 쉘 스크립트 작성(2)
  5. 2019.06.07 환경 변수

쉘 스크립트 작성(5)

Developer/Linux 2019. 6. 18. 23:49 Posted by JAKE_SLEEPY

For 문

for var in list
do
        command set
done

list 의 값들이 차례대로 하나씩 var에 대입된다.

1st    iteration : var = list[0]
2nd  iteration : var = list[1]
3rd   iteration : var = list[2]
                ...
Nth iteration : var = list[N-1]

list의 모든 element를 참조할 때까지 계속 실행된다.


[목록에서 값을 읽기]

스크립트


결과


[목록에 추가]

스크립트


마치 string을 결합하는 느낌이 든다.
str + str !


결과



'Developer > Linux' 카테고리의 다른 글

윈도우에서 Ubuntu Bootable USB 만들기  (0) 2019.06.30
쉘 스크립트 작성(4)  (0) 2019.06.18
쉘 스크립트 작성(3)  (0) 2019.06.16
쉘 스크립트 작성(2)  (0) 2019.06.16
쉘 스크립트 작성  (0) 2019.06.16

쉘 스크립트 작성(4)

Developer/Linux 2019. 6. 18. 01:51 Posted by JAKE_SLEEPY

복수 조건

[ condition 1 ] && [ condition 2 ]
: condition 1 과 condition 2가 모두 TRUE 일때

[ condition 1 ]  | |   [ condition 2 ]
: condition 1 이 TRUE 이거나 condition 2가 TRUE 일때


스크립트


결과



이중 괄호

(( expression ))

expression 에는 수식이나 비교 표현식이 들어갈 수 있다.


!
논리 부정
~
비트 부정
**
지수화
<<
비트 왼쪽 쉬프트
>>
비트 오른쪽 쉬프트
&
비트 단위 AND
|
비트 단위 OR
&&
논리 AND
||
논리 OR
num++
후위증가
num--
후위감소
++num
전위증가
--num
전위감소

스크립트



(( expression )) 에서는 > 기호가 리다이렉트가 아닌 부등호로 인식된다.


결과





이중 대괄호

문자열 비교에 사용한다.

스크립트


결과





'Developer > Linux' 카테고리의 다른 글

윈도우에서 Ubuntu Bootable USB 만들기  (0) 2019.06.30
쉘 스크립트 작성(5)  (0) 2019.06.18
쉘 스크립트 작성(3)  (0) 2019.06.16
쉘 스크립트 작성(2)  (0) 2019.06.16
쉘 스크립트 작성  (0) 2019.06.16

쉘 스크립트 작성(3)

Developer/Linux 2019. 6. 16. 20:04 Posted by JAKE_SLEEPY
조건 실행

if [ condition ]
then
    command set
fi

대괄호 앞 뒤에는 한칸 띄어져 있어야 한다.

대괄호 안에는 조건을 적는다.

condition 에는 숫자 비교, 문자열 비교, 파일 비교를 통해 조건 생성



숫자 비교
비교식
기능
num1 -eq num2
num1 과 num2가 같은지 확인한다.
num1 -ne num2
num1 과 num2가 다른지 확인한다.
num1 -ge num2
num1이 num2 보다 크거나 같은지 확인한다.
num1 -gt num2
num1이 num2보다 큰지 확인한다.
num1 -le num2
num1이 num2보다 작거나 같은지 확인한다.
num1 -lt num2
num1이 num2보다 작은지 확인한다.
#!/bin/bash

val_1=45
val_2=36

if [ $val_1 -lt 50 ]
then
    echo "value 1 is less than 50"
else
    echo "value 2 is greater than or equal to 50"
fi

if [ $val_1 -eq $val_2 ]
then
    echo "value 1 is equal to value 2"
else
    echo "value 1 is not equal to value 2"
fi


결과







문자열 비교

비교식
기능
str1 = str2
str1이 str2와 같은지 확인한다.
str1 != str2
str1이 str2와 다른지 확인한다.
str1 < str2
str1이 str2보다 작은지 확인한다.
str1 > str2
str1이 str2보다 큰지 확인한다.
-n str
str의 길이가 0보다 큰지 확인한다.
-z str
str의 길이가 0인지 확인한다.

[ 두 문자열이 일치하는지 확인 ]




결과






[ 두 문자열의 크기 비교 ]


결과


banana??

실행 오류의 원인: 

    부등호 기호를 이스케이프 하지 않아서 리다이렉트 기호로 해석해버렸기 때문.


수정

    


결과

    




[ 데이터 존재 유무 확인 ]


결과






파일 비교

비교식
기능
-d file
파일이 존재하며, 파일의 종류가 디렉토리인가?
-e file
파일이 존재하는가? (파일 종류는 상관X)
-f file
파일이 존재하고 정규 파일(Regular file)인가?
-r file
파일이 존재하며, 읽을 수 있는가?
-s file
파일이 존재하며, 비어 있지 않은가?
-w file
파일이 존재하며, 기록할 수 있는가?
-x file
파일이 존재하며, 실행할 수 있는가?
-O file
파일이 존재하며, 현재 사용자가 소유했는가?
-G file
파일이 존재하며, 기본 그룹이 현재 사용자와 같은가?
file_1 -nt file_2
file_1이 file_2보다 새것인가?
file_1 -ot file_2
file_1이 file_2보다 오래되었나?


A regular file is a file that is not a directory, symlink, socket, device, etc.

[ -e  FILE ] :   /etc/hosts = TRUE , /dev/null = TRUE
[ -f  FILE ] :   /etc/hosts =  TRUE, /dev/null  = FALSE


[ 디렉토리가 존재하는지 확인한 후에 디렉토리 위치 변경]


결과


[ 파일이 존재하면 현재 날짜와 시간을 그 파일에 추가 ]




결과








 



'Developer > Linux' 카테고리의 다른 글

쉘 스크립트 작성(5)  (0) 2019.06.18
쉘 스크립트 작성(4)  (0) 2019.06.18
쉘 스크립트 작성(2)  (0) 2019.06.16
쉘 스크립트 작성  (0) 2019.06.16
쉘 스크립트 파일 만들기  (0) 2019.06.09

쉘 스크립트 작성(2)

Developer/Linux 2019. 6. 16. 16:26 Posted by JAKE_SLEEPY
명령 실행

if-then 구문 사용


if command
then
    command set
fi


if문은 그 줄에 정의된 명령을 실행한다. 

이때 명령이 제대로 실행이 되었다면 반환값은 0이다.

하지만, 명령이 제대로 실행되어지지 않았다면 반환값은 0이 아닌 수이다.




#!/bin/bash

if mkdir my_dir
then
    echo "my directory is created! 1"
    echo "my directory is created! 2"
    echo "my directory is created! 3"
fi



if-then-else 구문 사용


if command
then
    command set 1
else
    command set 2
fi

#!/bin/bash

if mkdir my_dir
then
    echo "my directory is created! 1"
    echo "my directory is created! 2"
    echo "my directory is created! 3"
else
    ls
    echo "my directory is already created!"
fi


if-then-elif 구문 사용


if command 1
then
    command set 1
elif command 2
then
    command set 2
else
    command set 3
fi



elif 문을 쓰면 바로 뒤에 나오는 else 문은 앞에 나온 if-then 구문 코드 블록에 속한 것이 아닌 elif 문에 속한 것!

즉, elif에 대한 else를 의미.


if command1
then
    command set 1
elif command2
then
    command set 2
elif command3
then
    command set 3
elif command4
then
    command set 4
fi



'Developer > Linux' 카테고리의 다른 글

쉘 스크립트 작성(4)  (0) 2019.06.18
쉘 스크립트 작성(3)  (0) 2019.06.16
쉘 스크립트 작성  (0) 2019.06.16
쉘 스크립트 파일 만들기  (0) 2019.06.09
변수 배열  (0) 2019.06.09

환경 변수

Developer/Linux 2019. 6. 7. 01:43 Posted by JAKE_SLEEPY


환경 변수는 쉘 세션과 작업 환경에 대한 정보를 저장하기 위해 사용된다.
 
환경 변수를 이용해 메모리에 데이터를 저장할 수 있기 때문에 쉘에서 실행 중인 모든 프로그램이나 스크립트를 쉽게 사용할 수 있다.
 
 
환경 변수에는 전역 변수와 지역 변수가 있다.
전역 변수는 어디에서든 참조하여 쓸 수 있지만, 지역 변수는 생성한 쉘에서만 사용할 수 있다.
그렇기 때문에 생성한 쉘이 종료되면 지역 변수도 사라지게 될 것이다.


printenv 명령을 통해 전역 환경 변수를 출력해보았다.


리눅스 시스템에 상당히 많은 전역 환경 변수들이 선언되어 있는 것을 알 수 있다.

이러한 시스템 환경 변수는 일반 환경 변수와 구별되기 위해서 대문자로만 선언한다.





환경 변수를 참조하려면 환경 변수 이름 앞에 $ 기호를 넣어야 한다.





참조한 변수를 다양하게 활용할 수 있다.









'Developer > Linux' 카테고리의 다른 글

PATH 환경 변수  (0) 2019.06.09
사용자 정의 변수 선언  (0) 2019.06.07
코프로세싱  (0) 2019.06.06
백그라운드  (0) 2019.06.06
서브 쉘(2)  (0) 2019.06.06