方法一:
#!/bin/sh function scandir() { local cur_dir parent_dir workdir workdir=$1 cd ${workdir} if [ ${workdir} = "/" ] then cur_dir="" else cur_dir=$(pwd) fi for dirlist in $(ls ${cur_dir}) do if test -d ${dirlist};then cd ${dirlist} scandir ${cur_dir}/${dirlist} cd .. else echo ${cur_dir}/${dirlist} fi done } if test -d $1 then scandir $1 elif test -f $1 then echo "you input a file but not a directory,pls reinput and try again" exit 1 else echo "the Directory isn't exist which you input,pls input a new one!!" exit 1 fi
方法二、
#! /bin/bash function read_dir(){ for file in `ls $1` do if [ -d $1"/"$file ] //注意此處之間一定要加上空格,否則會報錯 then read_dir $1"/"$file else echo $1"/"$file fi done } #測試目錄 test read_dir test
其實這兩種方法的本質都是一樣的,只是第一個寫的多一些。