* * 검색어: while, nabiro, line, read, 줄단위, csh, 재귀적 호출, 변수 * 문서번호: 201307231119 * 아래의 shell script 만들어서 실행해보시면 while read line 문이 내부 변수를 전역변수로 처리할 때와 지역변수로 처리할 때의 차이점을 알 수 있습니다. #!/bin/bash export str="abc" echo " " echo "--------------------------------------------------" echo "while 문의 내부 변수가 지역변수로 처리되는 경우" echo "--------------------------------------------------" echo " " echo "str=$str" echo "..
*** nabiro, find, size, 크기, 특정 크기, 1번째 방법)find ./ -name *.xml -size -4 위 명령어는 4 blocks (1 block = 512 bytes) 이하의 파일 목록을 표시 2번째 방법)ls -l | awk '{ if ($5 < 2000) { print $0 }}'
*** 검색어: shell script, 쉘스크립트, 전체명령어, 인자 #!/bin/bash echo "0=$0, 1=$1, *=$*, @=$@" # $0 는 명령어 자체를 표시함 (예: test.sh) # $1 은 명령어의 첫번째 인자를 표시 # $* 는 명령어의 모든 인자를 표시 # $@ 역시 명령어의 모든 인자를 표시함
*** 검색어: nabiro, sed, line, grep, 줄삭제, 라인, 삭제, 라인삭제, 파일 #!/bin/ksh # 아래의 방식은 vi 에디터를 이용하여 임시 temp file을 사용하지 않아도 # 되지만 웬지 화면이 번쩍 거리는 것이 기분이 안좋아진다. # # 아래의 파일은 utrf.queue 파일에서 finestr 이라는 문자열이 있는 # 라인을 삭제한다. #vi -c "%g/findstr/d" -c "wq" utrf.queue local tmpfile="tmp.txt" sed /findstr/d utrf.queue > $tmpfile cp -f $tmpfile utrf.queue 위의 화면에서 sed /findstr/d utrf.queue > $tmpfile 부분은 > 문자가 > 문자로 변환..
*** 검색어: nabiro, 쉘스크립트, shell script, 인자, 명령어, 확인 #!/bin/ksh echo "테스트 명령어: ./test.sh arg1 arg2 arg3 arg4 arg5" echo "실행명령어 \$0 = $0" echo "모든 인자값 \$* = $*" echo "인자 갯수 \$# = $#"
*** 검색어: nabiro, 로그, 저장, 화면, 표시, 출력, 동시, 같은 시간, 같은시간 cat test2.sh | while read a ; do echo "${a}"; echo "${a}" >> logfile.txt; done 위 구문은 test2.sh의 내용을 화면에 표시(출력)함과 동시에 logfile.txt 파일에 내용을 저장한다.
*** 검색어: nabiro, shell script, shellscript, 쉘스크립트, 파일, 테스트, 존재, 있는지, 체크 fileName="test.java" if [ -f "$fileName" ]; then echo "$fileName 파일이 있습니다" else echo "$fileName 파일이 없습니다" fi # 위의 if 문에서 $fileName을 " " 으로 둘러싸는데 가끔 이렇게 " " 마크로 # 둘러싸는 경우 오류가 날 수 있습니다. # # 따라서 아래와 같이 하는 것이 좋습니다. # 특히 $1 처럼 인자값으로 파일명을 받는 경우 " " 마크를 반드시 # 빼주시는 것을 추천합니다. fileName="test.java" if [ -f $fileName ]; then echo "$file..
*** 검색어: nabiro, 쉘스크립트, shellscript, shell script, cron, crontab, 실행, 문제, 실행 안됨 일반적으로 cron에 등록된 쉘스크립트의 내부에는 수많은 명령어들이 존재하는데 문제는 이 명령어들이 있는 디렉터리 위치가 PATH에 등록되어 있어야 하는데, 이 PATH가 일반적으로 터미널에 로그인하여 .profile이 호출된 이후의 PATH 경로가 아니라 별도의 cron 환경변수에 등록된 PATH 이어서 문제가 된다. 그래서 cron 에 등록할 쉘스크립트의 서두에는 .profile을 호출하는 . ~pvcs/.profile 등과 같이 해주어야 문제가 없다. 또한 cron에 등록되었는데 제대로 실행이 안되는 경우 아래의 절차대로 진행을 하면 뭐가 문제인지 알 수 있..
*** 검색어: nabiro, pcli, 시각, 시간, get, 기준, 쉘스크립트 # 2010.08.23 / cskim@softcm.co.kr # # 매일 00:00AM에 실행되는 자동 배포 스크립트 # local myTime=`date +%I:%M%p` # 1일전 (우리나라는 KST-9 이므로, KST+15는 24시간 전) local myDate=`TZ=KST+15; date +%m/%d/%Y` #local fullTime="$myDate $myTime" # 어제날짜의 지금 시간 local fullTime="$myDate 11:59PM" //local fullTime="08/19/2010 11:59PM" # test #echo "fullTime=$fullTime" echo "vmBuild.sh -pcr..
*** 검색어: nabiro, shell script, shellscript, 날짜, 어제, 2일전, 구하는 법, 구하는 방법 #!/bin/ksh # # AIX, SUN, HPUX에서 어제 날짜 구하는 방법 # local todayDate=`date +%Y%m%d` local todayYear=`date +%Y` local todayMonth=`date +%m` local todayDay=`date +%d` # 아마 linux는 이런식으로 하나보다. +1 day 또는 +1 days #local yesterDay=`date -d "+1 day" "+%Y%m%d"` # 1일전 (우리나라는 KST-9 이므로, KST+15는 24시간 전) local yesterDay=`TZ=KST+15; date +%Y%m%d..
*** 검색어: nabiro, 숫자, 연산자 # 산술연산자 예제 x=1 x=`expr $x + 1` echo "x=$x" y=10 let y=y+10 echo "y=$y" z=100 z=$(($z+1)) echo "z=$z"
*** 검색어: nabiro, 쉘스크립트, shellscript, shell script, 파일명만, 파일명, 추출, 검색, basename basename abc.java .java 위 명령어를 실행하면 abc.java 에서 abc 만 표시됩니다.