如何将带有空格的目录作为参数传递到函数中



我正在编写一个 shell 脚本,该脚本将通过使用函数多次导航到计算机上的指定目录,其中一个指定的目录有两个单词,因此包含空格。

我已经使用cd "$1"..传入的参数。我也尝试cd "$@"并实际用引号括起来的实际目录名称替换变量,但错误仍然存在。

function Navigate()
{
    cd ~
    cd "$1"
    cd "$2"
    cd "$3"
    open $PWD
}

Navigate "Directory1" "Directory2" "Directory3"

我不断收到一条错误消息,显示找不到该目录。

示例:如果第二个目录名为 test directory ,则错误消息将显示:

/Users/Name/Directory1/test

和/Users/Name/Directory1/test Directory/Directory3/Directory3 不存在

function Navigate()
{
    cd ~
    cd "$1"
    cd "$2"
    cd "$3"
    open "$PWD"
}

如上所示,在$PWD周围加上引号,它会正常工作。

当你说open $PWD时,它会扩展到open first_word_of_dir_name second_word_of_dir_name。这会导致open得到两个参数,这两个参数都无效。

最新更新