쉘 스크립트 질문요...ㅠ_ㅠ;

choboadmin의 이미지

구글링도 하고 인터넷 검색을 다 했는데도...불과하고..도져히 방법을 몰라서 질문 드려요..

리눅스 배시 쉘 스크립트로...각 유저의 홈 디렉토리에 특정한 파일을 복사 해야 하는데..

각 유저 마다 복사 해야 하는 파일도 다르고....그리고 복사를 해야 하는 유저가 있고 안해도 되는 유저가 있습니다..

근대 인터넷 검색으로 찾은 명령어로는 도져히...이 상황에 맞는 쉘스크립트를 구현 못 하겠습니다..

고수님의 도움이 필요 합니다...제발 도와주세요...

PS)ls -la /home/했을때 디렉토리 목록이나 파일 내용이 나오는데 이 나온 목록을 배열에 넣고

배열에 넣은 목록을 하나 하나 검사(디렉토리안에 만약 test1이라고 하는 디렉토리)를 하면서 test1이 있다면/cp -rf /복사할 디렉토리/ /hoem/$arrylist[0]

없으면 /cp -fr /복사할 디렉토리 2/ /home/$arrylist[0]이런씩으로 만들어야 하는데..

ls -la /home/했을때 디렉토리 목록만 배열에 넣는 방법을 모르겠습니다..

아니면 이 방법 말고 더 좋은 방법이 있다면 가르쳐 주시면 감사하겠습니다..ㅠ_ㅠ

obbaya의 이미지

쉘 스크립트에 배열이 있어요??

users=`ls /home`
#users=`ls -al /home | awk '{ print $9 }'` #ls -al을 쓰셔야된다면 cut 이나 awk / seed 같은걸로 자르시고...

SRC_DIR='Mr/Santa/Bag'

for user in $users
do
if [ $user = "KLDP" ]; then
cp -rf $SRC_DIR /home/$user
fi
done

인덱싱이 필요없다면 위처럼 하면 될려나요??

제 수준에선 이 정도 도움만이 ;;

혹여 이 정도로 문제가 해결이 되신다면

제대로 검색해 보셨는지 의심이... ^*

bushi의 이미지

bushi@sel-git:~$ TARGETS=($(ls -1d /home/*))
bushi@sel-git:~$ NR_TARGETS=${#TARGETS[*]}
bushi@sel-git:~$ I=0; while ((I < NR_TARGETS)); do echo ${TARGETS[${I}]}; ((I++)); done
/home/bushi
/home/jjo
/home/sahara
/home/tolkien
bushi@sel-git:~$ 

OTL

fm100의 이미지

솔직히 질문내용이 잘 이해는 안갑니다만...

/home/ 아래에서 특정 파일을 찾아 한데 모으는 것이라면 이렇게 하면 되지 않을까 싶습니다.

fm100@Freddie:~$ TARGETDIR=/tmp/target find /home/ -name "filename" -exec cp -f {} $TARGETDIR \;

원하는 파일 찾는거는 find 옵션을 조절해가면서 하심이...

=================================================
Do the python !
=================================================

=================================================
Do the python !
=================================================