解决shell脚本遍历带空格的文件/文件夹名

在做iOS Flutter依赖引入的时候,需要去遍历Pods 工程中的文件,而这个工程下刚好有一个名称带空格的文件夹。如下:
解决shell脚本遍历带空格的文件/文件夹名_第1张图片

如下的脚本会出问题:

#!/bin/bash
function doSomething(){
    for element in `ls $1`
    do
        dir_or_file=$1"/"$element
        if [ -d $dir_or_file ];then
            doSomething $dir_or_file
        else
            echo $dir_or_file
            #do something
            ...
        fi
    done
}

root_dir="./"
doSomething $root_dir

原因是,执行ls命令的时候,文件夹名称带了空格,被当成了分隔符。
解决shell脚本遍历带空格的文件/文件夹名_第2张图片

网上查了一下相关资料,都是说把分隔符修改掉,使用时再改回来。于是脚本变成了这样:

#!/bin/bash
function doSomething(){
    for element in `ls $1 | t

你可能感兴趣的:(shell)