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

时间:2019-07-18 08:34:53

标签: bash macos terminal

我正在编写一个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不存在

1 个答案:

答案 0 :(得分:0)

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收到两个参数,都无效。