在 MacOSX 中,可以在 Finder 中创建名称中包含正斜杠“/”的文件夹。
我正在尝试通过执行类似于
args=("$@")
name=${args[0]}
street_corner=${args[1]}
my_folder="Hello ${name} - ${streetcorner}"
mk () {
case "$1" in /*) :;; *) set -- "./$1";; esac
mkdir -p "$1"
}
mk $my_folder
Run Code Online (Sandbox Code Playgroud)
其中街角是格式为“street 1/street 2”的交叉点,因此需要将斜杠保留在目录名称中。
我读了几篇像这样的文章,其中解释了如何在您自己设置字符串时操纵字符串以转义或保持前进。我遇到的问题是用户传递了要在脚本中使用的参数,因此当我运行命令以使用$my_folder作为参数创建目录时,字符串已经被封装。
如何扩展 street_corner 的值而不让正斜杠创建位于目录“street 1”内的名为“street 2”的子目录,而是创建一个名为“street 1/street 2”的单个目录?
我尝试了这些修复但失败了
street_corner="${args[0]}"
my_folder='"Hello ${name} - ${streetcorner}"'
my_folder="'Hello ${name} - ${streetcorner}'"
my_folder="Hello ${name} - ${'streetcorner'}"
my_folder="Hello ${name} - ${$"streetcorner"}"
my_folder="Hello "${name}" - "${streetcorner}
Run Code Online (Sandbox Code Playgroud)
并且还尝试为 street_corner 提供输入,例如
./my_script.sh "name" "street 1\/street 2"
./my_script.sh "name" 'street …Run Code Online (Sandbox Code Playgroud)