Shell Programming
bad interpreter: 파일또는 디렉토리를 찾을수 없습니다.
원인 : 윈도우에서 수정, 작성해서 올릴 경우 ^M 문자가 생겨 발생한다.
vi -b 해당쉘스크립트
해서 아래의 명령 실행
:1,$s/^M//g
날짜 뽑아내기
date '+%Y%m%d'
./run.sh & 와 nohup run.sh & 의 차이.
shopt에 huponexit on 으로 설정되어있는경우. 터미널 세션이 종료되면
해당 job도 같이 종료된다.
최근에는 기본적으로 off로 설정되어있으나 예전엔 default 값이 on으로 되어있었다고 한다 -_-;
shell option 보기
shopt
nohup 로 출력시 로그 남기지않기.
nohup sh run.sh > /dev/null 2>&1 &
HP / Solaris 에서 echo -n (newline 무시)
background로 돌린 job의 pid 얻어내기.
./run.sh &
SHELL>echo $!
변수에 매핑해도 된다.
var 문자열 갯수 출력.
shell> read -s password
asdf
shell>echo ${#password}
4
아래와 같은형태로 문자열 길이 비교도 할 수 있다.
입력패스워드가 8자리 이하인가?
[ ${#password} -gt 8 ]
특정 쉘에서만 가능한 옵션들.
echo -n ( New line 무시)
read -s ( 입력문자열을 보여주지않음 )
sh 에서는 이 옵션을 사용할수 없다.. -_-;
ls Recursive 하게.
ls -pR | grep '\.\/' > .dir_list
파일이 있는지 없는지 체크
[ -f /data/home/filename ]
boolean 형이므로 비교연산자와 같이 사용해서 쓰면 된다.
test 관련 몇가지.
-z String : String 갯수가 0인지
-f FILE : 파일이 존재하고 regular file인지.
Expression1 -o Expression2 : or 연산.. 둘중하나가 true면 true 리턴.
Expression1 -a Expression2 : and 연산. 둘다 true여야 true리턴.
Byte 수 char 수 line 수 word수 구하기
$) wc [options] [file]
-l : 라인수
-c : byte 수
-m : char 갯수
-w : 문자열 갯수
History
Last edited on 05/20/2008 11:45 by dsdgun
Comments (0)