【问题标题】:Bash path contained space no such file or directorybash 路径包含空间没有这样的文件或目录
【发布时间】:2016-03-21 07:06:19
【问题描述】:

根据这个问题How to input a path with a white space? 我已经声明了一个这样的目录路径:

startup='/cygdrive/c/Users/Me/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup';我试图将路径用双引号括起来,但它也不起作用。

但由于某种原因,当我输入 $startup 时出现错误:

$ $startup
bash: /cygdrive/c/Users/Alex/AppData/Roaming/Microsoft/Windows/Start: No such file or directory

你会如何解决这个问题?

【问题讨论】:

    标签: bash path cygwin


    【解决方案1】:

    用引号将变量括起来:

    $ "$startup"
    

    为了安全起见,您应该始终引用变量。您可以参考this页面了解更多详情。

    正如它在第一段中所说:“当引用一个变量时,通常建议将其名称用双引号括起来。这可以防止重新解释引用字符串中的所有特殊字符 -- 除了 $, ` (反引号)和 \(转义)。”

    您也可以参考this 页面,该页面声明:基本的经验法则是您应该对每个扩展都进行双引号。这可以防止不必要的分词和通配符。如有疑问,请引用。

    【讨论】:

    • 是的,这是有效的,但为什么没有引号就不能工作?
    • shell对参数扩展的结果进行分词,所以定义字符串时需要引用,扩展时
    猜你喜欢
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多