添加参数bash

添加参数bash,bash,recursion,find,arguments,Bash,Recursion,Find,Arguments,各位嘉宾:, 在bash中构建“find”命令 当前,当一个目录被传递时,它可以工作,但是如果它没有被传递,那么运行“find”默认为“find./” 我的代码中出现的情况是递归函数(一个在其文件树中添加所有项的func)与使用$@ recurse(){ oldIFS=$IFS IFS=$'\n' for f in $@ do list="`echo -e "$list\n$PWD/${f}"`" if [

各位嘉宾:, 在bash中构建“find”命令 当前,当一个目录被传递时,它可以工作,但是如果它没有被传递,那么运行“find”默认为“find./”

我的代码中出现的情况是递归函数(一个在其文件树中添加所有项的func)与使用$@

recurse(){
oldIFS=$IFS
     IFS=$'\n'
     for f in $@
         do
             list="`echo -e "$list\n$PWD/${f}"`"
             if [[ -d "${f}" ]]
                 then 
                     cd "${f}"
                     recurse $(ls -1 ".")
                     cd ..
             fi      
     done   
     IFS=$oldIFS
}
那么,有没有办法添加一个命令行参数,使代码保持不变 或 如何创建一个保存$@的变量,以便在上面的for循环中使用它
然后我可以将该变量设置为“/”,如果我检测到$#==0

使用数组,以匹配
$@
中的数组

args=("$@")
if (( ${#args[@]} == 0 ))
then
  args=(./)
fi

for f in "${args[@]}"
do
   ...
done