添加参数bash

时间:2013-11-27 02:43:30

标签: bash recursion find arguments

赞成伙伴, 在bash中构建“查找”命令 目前在传递目录时它有效但如果没有传递,则运行“find”默认为“find ./"

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

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

,我可以将该变量设置为“./”

1 个答案:

答案 0 :(得分:1)

使用数组匹配$@中的数组。

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

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