글쓴이: 익명 사용자 / 작성시간: 목, 2001/10/04 - 4:05오후
안녕하세요.
쉘 스크립트를 사용해서 정기적인
백업을 하는 스크립트를 만들려고
합니다.
정기적인 백업을 할때 백업된 파일의
이름을 날짜로 사용하려 합니다.
예를 들어
#!/bin/sh
tar cvzf home_$1.tgz /home
이런 스크립트를 만들고 여기에
변수값으로
date --iso-8601에서 나오는
결과값을 사용하려 합니다.
그런데 디라이렉션이나 파이프로는
안되더군요.
어떤 다른 변수값이 있나요??
답변은 고맙습니다. 그러나 제가 원하는 부분은 date명령어의 결
위 글대로 해보니 'date --iso-8601' 이란 문자열이 그대로 파일 이름에 들어
가더군요.
제가 원하는 부분은 date --iso-8601 이란 명령어를 실행하면 나오는 결과값
을 파일이름에 넣고 싶거든요.
그러니 date --iso-8601을 문자열로 받으면 안되고 실행된 결과값을 받도록 변
수 설정이나 특정 함수를 사용해야 할것 같은데요?.. 맞나요?
아니면 외부 텍스트 파일의 내용을 불어오는 방법이라도 ....
그렇게라도 되면
#date --iso-8601 > date.txt
라고 한번 실행한 다음에
date.txt에 저장된 내용을 파일이름의 변수로 불러와서 사용하려 합니다.
Re: 감사합니다. 잘 되는군요.
감사합니다. 잘 됩니다.
Re: 쉘스크립트에서 날짜를 변수로 하고 싶은데요...
#!/bin/sh
filename=`date --iso-8601`
tar cvzf home_"$filename".tgz /home
Re^3: '와 `를 잘못 사용하신 것 같습니다.
1번째줄 #!/bin/sh
2번째줄 filename=`date --iso-8601`
-------------------------------------------
2번째 줄에 있는 `는 작은 따움표가 아니라
tab키 바로 위에 있는 `키입니다.
tab키 위에 있는 `키를 사용하시면 원하시는 결과를
얻으실수 있을 것입니다.
-------------------------------------------
3번째줄 tar cvzf home_"$filename".tgz /home
필요한 답변을 얻을 수 있어서 감사합니다.
' " 다 해봤지만 tab 키 위에 있는걸 몰랐네요
^^;;
감사합니다.
헷갈리시면.. a=`command` 대신에 a=
헷갈리시면..
대신에
와 같이 해 주시면 됩니다. 위의 표현으로 사용하는 이유는, 과거 오래된 sh shell 같은 것 때문에 `` 문법을 사용하는 건데, 요즘은 거의 sh를 사용하는 경우가 드물기 때문에 (embeded 시스템이나 busybox 에서는 문제가 될 수도..) `` 문법 보다는 $() 문법이 좀 더 확실한 표현이 될 수 있습니다.
댓글 달기