使用bash脚本创建具有空间的文件夹

时间:2019-04-03 00:44:21

标签: bash

我尝试自动执行一个过程,该过程涉及使用bash脚本create.sh创建文件夹,给定文件夹名称作为用户输入。

#!/bin/sh

mkdir -p tags/$1/

因此,在使用./create.sh abc时,此脚本将在文件夹abc中创建一个文件夹tags。但是,当用户输入中有一个或多个空间时,则不会这样做。例如,./create.sh "folder space"将在当前目录中创建文件夹space,在folder目录中创建文件夹tags

我尝试通过用sed转义空格,将每个<space>更改为\<space>来解决此问题。

#!/bin/sh

mkdir -p tags/$(echo $1 | sed 's@ @\\ @g')/

但这仍然无法正常工作。 ./create.sh "folder space"将在当前目录中创建文件夹space,在\folder目录中创建文件夹tags。我在这里感到困惑是因为如果我在echo的前面添加mkdir并再次运行,则会打印出mkdir -p tags/folder\ space/,如果我直接在终端中复制并运行它, , 有用。

所以我不确定哪一步做错了。我在Mac OS 10.14.3上使用默认终端

0 个答案:

没有答案