首页 > 解决方案 > Bash - 传递给函数的参数中的空格

问题描述

我在管理传递给函数的空格的路径时遇到了一些问题。

测试代码

#!/bin/bash

WORKING_DIR="./test"
mkdir -p "$WORKING_DIR/entry-A"
mkdir -p "$WORKING_DIR/entry-B"
mkdir -p "$WORKING_DIR/entry C D E "

checkFolder() {
    echo $1 
    ls $1
}

export -f checkFolder

find $WORKING_DIR -type d -exec bash -c 'checkFolder "$@"' bash {} \;

这里的输出:

here the output:

./test.sh 
./test
entry-A   entry-B  'entry C D E '  'entry D E '
./test/entry-A
./test/entry-B
./test/entry D E
ls: cannot access './test/entry': No such file or directory
ls: cannot access 'D': No such file or directory
ls: cannot access 'E': No such file or directory
./test/entry C D E
ls: cannot access './test/entry': No such file or directory
ls: cannot access 'C': No such file or directory
ls: cannot access 'D': No such file or directory
ls: cannot access 'E': No such file or directory

您能否建议我在这种特定情况下使用空格和其他特殊字符管理路径的正确方法?

谢谢

标签: linuxbash

解决方案


推荐阅读