Shell Script( 쉘 스크립트 ) while 문 사용법, 조건식



while 문 기본 사용 법




쉘에서 while문을 사용 시 조건 식이 문자로 되어있어 다소 어려움을 겪을 수 있습니다.

예를 들어 ( <, >, = ) 기호가 ( -eq, -lt ) 등 다르게 표기 되고 있기 때문입니다.

일단 while문 기본 형식 부터 알아보겠습니다.


 while [ 값1 조건식 값2 ]

 do

   수행문

   수행문

 done 



while 문과 조건 사이에 띄어 쓰기를 주의해서 작성 하셔야 에러 없이 동작합니다.

다음은 while문을 활용 해서 1~4까지 출력하는 간단한 예를 보겠습니다.


#! /bin/ksh


i=1


while [ $i -lt 5 ]

do

        echo $i

        i=$(($i+1))

done



여기서 -lt 는 < 와 같은 뜻이라고 생각 하면 됩니다.


while 문에 사용되는 조건문 종류


while문에 사용 되는 조건식은 아래와 같습니다.




[ -z ] : 문자열의 길이가 0이면 참

[ -n ] : 문자열의 길이가 0이 아니면 참


[ -eq ] : 값이 같으면 참

[ -ne ] : 값이 다르면 참

[ -gt ] :  값1 > 값2

[ -ge ] : 값1  >= 값2

[ -lt ] : 값1 < 값2

[ -le ] : 값1 <= 값2


[ -a ] : &&연산과 동일 and 연산

[ -o ] : ||연산과 동일 xor 연산


[ -d ] : 파일이 디렉토리면 참

[ -e ] : 파일이 있으면 참

[ -L ] : 파일이 심볼릭 링크면 참

[ -r ] : 파일이 읽기 가능하면 참

[ -s ] : 파일의 크기가 0 보다 크면 참

[ -w ] : 파일이 쓰기 가능하면 참

[ -x ] : 파일이 실행 가능하면 참

[ 파일1 -nt 파일2 ]  : 파일1이 파일2보다 최신파일이면 참

[ 파일1 -ot 파일2 ]  : 파일1이 파일2보다 이전파일이면 참

[ 파일1 -ef 파일2 ] : 파일1이 파일2랑 같은 파일이면 참


반응형


그릿 이 책 제목을 봤을 때 이 뜻이 뭔지 몰랐다.

사전 적으로는 끈기, 투지, 불굴의 의지 이런 뜻이며 저자는 '열정과 집념이 있는 끈기' 이렇게 말하고 있다.



저자는 사람의 재능 보다 Grit이 더 뛰어난 사람이 성공할 가능성이 있다는 전제로

투지가 강한 사람이 성공한 여러 사례를 소개하고 저자가 연구한 내용을 책을 통해 독자들에게 전해준다.


좌절하지 않고 포기하지않고 열심히 노력해 성공하는 사람들 이야기

어디서든 많이 본듯하지만 그래도 이책을 읽으면서 내가 기억하고 싶은 부분은 한가지가 있다.


바로  "노력의 깊이" 인데

여기서 열심히 노력 한다는 개념은 무의식적인 노력이 아닌

최종 적은 큰 목표와 단계별 목표를 설정하여 의식적으로 매번 집중하는 

 끈질김과 열정이 가득한 고도의 노력이 필요 하다는 강조한다.


이책은 재능보다 GRIT의 중요성을 전해주는 책이며

평범한 저에겐 삶의 용기를 복돋아 줌과 동시에 확신을 갖게해줬다.


여러분이 만약 재능보다 노력의 중요성을 더 믿는 다고 생각 한다면 이책을 꼭 보기를 추천드립니다.




반응형

'책 서평 > 자기 계발' 카테고리의 다른 글

[책 리뷰]초의식 독서법  (0) 2017.03.06
[책 리뷰] 정해진 미래  (0) 2017.01.15
[책 리뷰] 로봇의 부상  (0) 2016.12.27
[책 리뷰] 유시민의 글쓰기 특강  (0) 2016.12.18
[책 리뷰] 대통령의 글쓰기  (0) 2016.11.26

Unix/Linux lsof 사용법(특정 PORT 사용하는 프로세스 찾기)



lsof 를 사용하여 특정 PORT 사용하는 프로세스 찾기



특정 포트가 사용되어 프로그램이 실행이 되지 않을 때 어떤 프로그램이 점유 하는지 찾기 난감합니다.

이럴때 lsof를 사용하여 특정 포트를 사용하는 프로세스를 찾아 보도록 하겠습니다.


 lsof -i:[port 번호]


예제를 실행해보면 다음과 같습니다.


[hostname:/home/util]$ lsof -i:80

COMMAND PID USER FD TYPE     DEVICE SIZE/OFF NODE NAME

httpd        721  test  3u  IPv6    0x000000   0t0         TCP   *:80 (LISTEN)



이런 식으로 80 포트를 사용하는 프로그램 명은 httpd 이며 PID는 721 입니다.

참고로 해당 프로그램을 강제 종료 하고 싶을 때는 kill 사용하여 종료 하시면 됩니다.

이상으로 lsof에 대한 사용법에 대해 알아봤습니다.

도움이 되셨나요?



반응형

파이썬 CMD 결과 값 받는 방법



cmd 결과 값 받는 방법


파이썬에서 os.system 명렁의 결과를 받고 싶을 때가 있을 것이다.

아래는 2.x 기준으로 os.system 의 결과를 받는 방법을 알아 볼 것이다.

일단 예제 부터 보겠다.

아래의 예제를 실행 하면 디스크 사용량을 백분율로 나타낸 결과 값이 출력 될 것이다. 


#! /usr/bin/python

# -*- coding: utf-8 -*-


import os

import sys

import shutil

import commands

from datetime import datetime, timedelta


(exitstatus, outtext) = commands.getstatusoutput('df -k | grep /home/test | awk \'{print $5}\'')


print outtext


예제를 봤으니 중요한 부분 설명을 하도록 하겠다.

import commands  를 import해야 cmd 결과를 받아 올 수 있다.

os.system 대신 commands.getstatusoutput 사용하여 시스템 콜을 한다.

시스템 콜의 결과가 outtext에 담겨지고 해당 값을 출력하면 

unix에서 시스템 콜 한 명령 결과와 일치하게 출력 되는 것을 확인 할 수 있다.

exitstatus는 성공, 실패 값을 담는 것 같은데 해당 내용은 사용을 안하니 넘어가도록 하겠다.

간략하게 사용방법은 다음과 같다.


 import commands

 ([실행 성공 여부 변수],[시스템 콜 결과 받는 변수]) = commands.getstatusoutput( 시스템 콜 명령어 예를 들어 linux/unix 명령어 )


이상으로 파이썬에서 cmd 결과 값을 받는 방법에 대해 알아 보았습니다.

도움이 되셨나요?



반응형

'프로그램 > Python' 카테고리의 다른 글

[Python] 예외처리 try, finally, except pass  (0) 2016.11.28
[Python] 예외 처리, try, except, else  (0) 2016.11.26
[Python] 모듈 #2  (0) 2016.11.13
[Python] 모듈 #1  (0) 2016.11.12
[Python]클래스(3)  (0) 2016.11.02

+ Recent posts