*** 검색어: shell script, 쉘스크립트, 전체명령어, 인자 #!/bin/bash echo "0=$0, 1=$1, *=$*, @=$@" # $0 는 명령어 자체를 표시함 (예: test.sh) # $1 은 명령어의 첫번째 인자를 표시 # $* 는 명령어의 모든 인자를 표시 # $@ 역시 명령어의 모든 인자를 표시함
*** 검색어: nabiro, 쉘스크립트, shell script, 인자, 명령어, 확인 #!/bin/ksh echo "테스트 명령어: ./test.sh arg1 arg2 arg3 arg4 arg5" echo "실행명령어 \$0 = $0" echo "모든 인자값 \$* = $*" echo "인자 갯수 \$# = $#"
*** 검색어: 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, 쉘스크립트, shellscript, shell script, 파일명만, 파일명, 추출, 검색, basename basename abc.java .java 위 명령어를 실행하면 abc.java 에서 abc 만 표시됩니다.
*** 검색어: nabiro, 쉘스크립트, shell script, shellscript, 비교연산자, 정수, 비교, 연산자 if [ "$a" -eq "$b" ]; then echo "같다" else echo "틀리다" fi 위 소스에서 "$a" 대신 $a 라고 쓰지는 말자, 되도록이면 비교 대상이 되는 변수에 " "를 꼭 써주자
*** 검색어: nabiro, 쉘스크립트, shell script, 문자열, 삭제 strB="abcdefghijklmn" strC="abcd" strA=${strB#$strC} echo strA 결과는 efghijklmn 이 나옵니다.
*** 검색어 : nabiro, 쉘스크립트, shell script, 문자열, 길이, 문자열길이, strA="abcde" strB="123" cntStrA=`echo $strA | wc -c` cntStrB=`echo $strB | wc -c` echo "strA의 길이: $cntStrA" echo "strB의 길이: $cntStrB" ================================= 결과는 strA의 길이: 6 strB의 길이: 4 위와같이 우리가 생각하는 문자열의 길이 +1 개만큼 나옵니다. 왜 +1개인지는 아직 모르겠습니다. ***** 또는 아래와 같은 방법도 있습니다. strA="abcde" echo ${#strA} 결과는 5 나오네요.