2013-11-02 3 views
2

다음 코드는 각 디렉토리 또는 파일에 번호를 붙여 레이블 arg1 (pwd 기본적으로)의 하위 디렉토리를 재귀 적으로 찾습니다. 그런 다음 사용자에게 번호를 입력하라는 메시지를 표시하고 디렉토리 번호가 디렉토리 인 경우 그 번호로 해당 디렉토리 레이블을 CD하십시오.bash 쉘 코드 혼동

그러나 나는 이해하지 않는 번호에서 .... 와서 나는 그것이 도달 서브 디렉토리의 깊이를 제어 할 수있는 방법을 ...

사용 소스 gd.sh GD

#!/bin/bash 

function gd() 
{ 
local dirname dirs dir 

if [ $# -gt 0 ] 
then 
dirname=$1 
else 
dirname=$(pwd) 
fi 

dirs=$(find $dirname -type d) 

PS3=`echo -e "\nPlease Select Directory Number: "` 

select dir in $dirs 
do 
if [ $dir ] 
then 
    cd $dir 
    break 
else 
    echo 'Invalid Selection!' 
fi 
done 

감사합니다.

답변

1

이 번호는 select ... in ...에서 가져옵니다. 목록의 각 요소에 번호를 추가합니다. man 페이지의 bash을 확인하십시오.

dirs=$(find $dirname -maxdepth 2 -type d) 
+0

멋진 하나, 도움을 주셔서 감사 :

두 번째 질문에 대한

는 옵션 -maxdepthfind의를 사용 – Liduo