2014-12-01 2 views
0

쉘 스크립트에서 파일 dir_에 출력 할 수없는 이유는 무엇입니까? 여기 스크립트에서 파일로 출력

는 스크립트의 명령입니다 :

사용자 ID] # 개의 VI의 script.sh

 
#! /bin/bash 
echo `grep -w 7171 $ABC` > /home/username/dir/dir_$(date +%Y%m%d_%H%M%S).csv 

사용자 ID] # ./script.sh ./script.sh : 행 13 :/홈/username/dir/dir_20141201_160840.csv : 해당 파일이나 디렉토리가 없습니다.

글쎄, 스크립트가 새 파일을 만들 것을 기대했습니다.

해결 방법을 알려주십시오.

감사합니다,

+0

은'/ 홈/사용자 이름/존재 dir' 않는 파일에 결과를 grep을

  • rep -w 7171 $ABC > /home/username/dir/dir_$(date +%Y%m%d_%H%M%S).csv? 또한'echo'는 완전히 불필요하며'grep' 결과에 공백이있는 문제를 적극적으로 일으 킵니다. –

  • +0

    예,/dir이 존재합니다. 그럼, 어떻게 써야할까요? – ErAB

    +1

    'grep -w 7171 "$ ABC"> ...'거기에'echo'가 필요 없습니다. –

    답변

    1

    어떻게 테스트

    • [ ! -d /home/username/dir/ ]

      ([ ! -d /home/username/dir/ ] && mkdir /home/username/dir/) && grep -w 7171 $ABC > /home/username/dir/dir_$(date +%Y%m%d_%H%M%S).csv 
      

      에 대한 디렉토리가

    • mkdir /home/username/dir/가 존재 나던 그 경우 디렉토리를 생성 존재하는 경우.

    0

    아마 dir 때문에 존재하지 않는 인 Ashish. 당신은 그것을 만들어야합니다 :

    ~$ echo "a" > f 
    ~$ echo "a" > dir/f 
    -bash: dir/f: No such file or directory 
    ~$ mkdir dir 
    ~$ echo "a" > dir/f 
    ~$