#!/bin/env bash ## usage: addSpace <dir> ## example: ./addSpace src is_directory() { local DIR_NAME=$1 if [ ! -d $DIR_NAME ]; then return 1 else return 0 fi } parseDir() { local dir=$1 if is_directory "${dir}" then : else echo "error,please pass me a dirctory"; exit 1 fi echo "working in ${dir}" local filelist=`ls "${dir}"` for filename in $filelist do local fullpath="${dir}"/"${filename}"; if is_directory "${fullpath}" then parseDir "${fullpath}" else suffix="${filename##*.}" ; if [ 'cpp' == $suffix -o 'h' == $suffix ]; then echo "parsing ${fullpath}" echo "done!" fi fi done } parseDir "$1"
注意:shell 里也由局部变量的概念 使用local关键字。