>> Edit article
이름
제목
패스워드
제가 파일이나 디렉토리 모드를 바꾸는 스크립트를 짜고 있는데 디렉토리 구조를 찾아낼 방법을 알 수가 없어서 무식하게 디렉토리가 검사 될 때 마다 변수에 집어 넣었다가 다시 그걸 읽어서 디렉토릴 바꿀려고 하는데, 찾아낸 디렉토릴 변수에 저장을 할 수는 있는데 다시 변수로부터 읽어 올 방법을 몰라서 질문 드립니다. 먼저 스크립트를 보시고 문제를 더 자세히 설명 드리죠. #!/bin/sh count=0 dir_tree() { local dir_v="$file_name" temp_dir=dir_v eval dir$count='$'$temp_dir echo "current dir is $dir$count" count=$(($count+1)) } for file_name in * do if [ -d "$file_name" ];then chmod 755 "$file_name" dir_tree dir_flag=1 elif [ -f "$file_name" ] && [ "$0" = "$file_name" ];then echo "$file_name is $0 itselfe" echo "$(ls -l "$file_name")" elif [ -x "$file_name" ];then echo "$file_name" is excutable else chmod 644 "$file_name" fi done count=$(($count-1)) echo "End dir $dir0, $dir1, $dir2, $dir3" 디렉토릴 저장하는 변수는 저 위에 dir_tree()함수 에서 dir$count로 count 가 증가 할 때마다 dir0, dir1, dir2....이런식으로 생성이 되면서 그 변수에 검색이 된 디렉토리 이름이 저장이 됩니다. 이건 맨 마지막 줄에서 echo로 확인을 해 보면 출력이 되는 걸로 봐서 제대로 동작을 합니다. 근데 문제는 출력을 마지막 라인 처럼 할려는 게 아니라 count=3 이고 dir$count이런 식으로 적어 주었을 때 dir3에 저장된 값을 출력을 하고 싶은데 방법을 모르겠네요. 아시는 분 답변 좀 부탁합니다. echo $dir$count이렇게 하게 되면 정의 되지 않은 변수 dir에서 값을 가져고오고 다시 $count를 3으로 대체해서 출력을 하기 땜시 원하는 결과인 dir3의 값을 출력 할 수가 없네요.--이 곳에 서명을 적어주십시오. 킬리만자로의 표범
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved