shell script 간단 질문
글쓴이: apollo97 / 작성시간: 목, 2008/01/17 - 9:22오후
책보다가...
tempfile=`tempfile 2>/dev/null` || tempfile=/temp/test$$ temp 밑에 test$$ 으로 임시파일을 만든다
이렇게만 적혀있어서... 도데체 위에있는 tempfile 2>/dev/null 은 뭔지 첨 보는거라서... 혹시 오타가 아닌지 그리고 tempfile=/temp/test$$ 이렇게 하면
파일 만들어 지나요? 안만들어져서...
마지막 질문 변수=파일경로 이렇게 쓰면 변수에는 뭐가 저장이 되는지요 예) temp=/root/file
읽어주셔서 감사합니다.
Forums:
찾다보니...
tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$
trap "rm -f $tempfile" 0 1 2 5 15
The first line above tries to create a temporary file using the utility tempfile. If it fails, a temporary file is manually set up in /tmp. The second line above sets up a trap routine.
tempfile 이란 명령어가 있나요?
이름이 tempfile인
이름이 tempfile인 변수를 선언하는 부분입니다.
변수 tempfile의 값은 둘중 하나가 됩니다.
첫째, tempfile 이라는 명령어의 결과를 변수의 값으로 선언 합니다.
tempfile 명령어의 결과는 어떤 파일명이 되는것 같네요...
tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$
--------
|
+---- 요놈이 tempfile이라는 명령어를 나타냅니다. 나머지 부분은 tempfile 변수를
나타냅니다. 변수명과 명령어의 이름이 같아서 헷갈릴수 있겠네요.
둘째, tempfile의 명령어가 정상적으로 실행되지 않으면
변수 tempfile의 값은 /tmp/test$$가 됩니다. 그냥 직접 선언하는 거죠. 이걸보면
tempfile 명령어의 결과도 어떤 파일명이 된다는걸 짐작할수 있네요.
------------------------------------------------------------------
2>/dev/null tempfile 명령어의 결과를 화면으로 출력하지 않기위해서 해주는 겁니다.
쉘 스크립트보면 많이 나오는 부분입니다.
temp=/root/file 이렇게 하면 temp라는 변수의 값은 /root/file이 되죠..
cat $temp 이렇게 사용하면 /root/file 파일의 내용이 화면에 출력되겠죠..
tempfile=/temp/test$$ 이렇게 하면 tempfile이라는 변수의 값은 /temp/test$$가 되죠.
파일이 생성되지는 않죠.. 굳이 생성하려면
touch $tempfile 이런식으로 생성해 줘야합니다.
----------------------------------------------------------------------------
우리 항시 웃고 살아요 ^^
tempfile=`tempfile
아마도
명령어로 tempfile 이란 실행파일이 있습니다.
그래서
tempfile=`tempfile` 이 명령의 결과로, 즉 우측의 tempfile이라는 명령의 결과를
왼쪽의 tempfile 에 넣는겁니다..단 그 에러메세지를 보고 싶지 않으니 /dev/null로
에러 메세지를 보내서 화면에 보이지 않게 하는겁니다
0 은 stdin , 1은 stdout, 2는 stderr 입니다.(콘솔로 따져서)
그 다음의 || 는 그 앞의 tempfile=`tempfile 2>/dev/null` 까지가 실패하면 이라는 뜻입니다.
만약 && 를 썼으면 성공하면 이라는 뜻이지요
tempfile=/temp/test$$ 중 뒤의 $$는 PID 입니다. 즉 자기 쉘이 실행될때의 프로세서
번호입니다
방금 ps 명령의 pid는 21447번이지요..고로
/temp/test3355 등의 파일을 tempfile 로 쓰겠다 그런 뜻 일겁니다.
틀린것 있으면 지적해 주세요..~~
제가 답변드릴수
제가 답변드릴수 있는 것은 아니지만
질문을 하시거나 일을 부탁할때
그것이 간단하다고 말하면서 빨리 해달라거나 왜 해주지 않느냐고 물어보시는 일이 없기를 바랍니다.
이유는 상대가 그 일을 해주더라도 부탁하는 사람이 간단한 일을 의뢰한 것이기 때문에 별로 생색내지도 못하고(생색 낼 필요도 없지만)
막상 해보니 어려운 일이라 빨리 처리하지 못하면 간단한 일을 처리도 못하는 사람이 되어버리는 것이니
간단한 일에 대한 부탁은 직접 간단하게 처리하시는 것이 좋습니다.
댓글 달기