shell script 문법 for, cut 에 관해
글쓴이: domiisa / 작성시간: 수, 2012/02/22 - 9:10오후
코딩중 안되서 테스트 하려고 만들었는데 생각대로 안되네요..
제가 잘못 이해하고 있는듯 한데 한수좀..
목표: 현재 제 쉘 위치에는 199912 201112 201201 333333 <-이렇게 4개의 폴더가 있고
aaa.sh , asdf.txt <- 이렇게 2개의 파일이 있습니다.
var 변수안에 폴더이름 1~4번째자리를 var2에는 5~6번째 문자 넣으려고 합니다.
소스
#!/bin/sh
for dir in ??????
do
if [ -d $dir ]; then
var=$dir | cut -c1-4
var2=$dir | cut -c5-6
echo $var
echo $var2
fi
done
이렇게 하면 제생각으로는
문자열 길이 6자리인것중에(??????) 그것이 폴더이면 안에것 실행한다 이런뜻인데
예상 output은
1999
12
2011
12
2012
01
3333
33
이렇게 나와야하는데 현실은
1999
2011
빈칸
빈칸
위에꺼 4번 반복해서 나옵니다.
제가 짠 소스 해석좀 부탁드립니다.output이 왜 이렇게 나오는지 이해가 안감니다.
그리고 예상대로 나올려면 어느것을 수정해야할지 힌트좀 주시면 ㄳ 하겠습니다.
Forums:
원하시는게 var=`echo $dir | cut
원하시는게
였던듯 합니다.
#!/bin/sh 대신 #!/bin/bash 를 쓸수 있다면
이런 식으로 바꾸면 더 간단합니다.
오!! planetarium 님 ㄳ합니다. 해결됐네여
오!! planetarium 님 ㄳ합니다. 해결됐네여 ㅎ
`이문자를 사용해줘야하는군요.잘배워갑니다
댓글 달기