bash 에서 디렉토리 목록 가져오는 방법 문의

글쓴이: 익명 사용자 / 작성시간: 목, 2017/10/19 - 11:24오전
bash shell script 을 작성해서 간단하게 디렉토리 경로를 가져오는 걸 만들었는데, 처음에 잘 동작하다가 어느 순간 오류가 발생하고 있습니다.
아주 간단한건데...
#!/bin/bash REPOS=$'ls -d /var/gitrepo/*' for repo in $REPOS do cd $repo; git remote update done
이런 식으로 특정 디렉토리 안에 있는 git 저장소를 갱신하는 건데...저장소가 늘어나서 그런지 몰라도 디렉토리 목록 이전에 ls 와 -d 가 $REPOS 에 포함되어서 들어오고 있습니다.
원인이 무언지 모르겠습니다.
조언 부탁드립니다.
Forums:
다음의 예처럼 $'명령' 대신 $(명령) 을
다음의 예처럼 $'명령' 대신 $(명령) 을 사용하셔야 합니다.
`명령` 도 됩니다.
REPOS=$(ls -d /var/gitrepo/*)
하지만 아마도 다음과 같이 * 이 없어야 원하시는 결과가 나올것 같습니다.
REPOS=$(ls -d /var/gitrepo/)
-d 옵션이 잘 작동한다는 보장이 없습니다. 아마
-d 옵션이 잘 작동한다는 보장이 없습니다. 아마 디렉토리 밖에 없어서 잘 되는 것 처럼 보이겠지만..
이런 결과를 내보낼 수 있습니다. 그러므로 -d 옵션으로 하지 마시고 test -d 로 하시는 것이 좋습니다.
댓글 달기