【问题标题】:Linux Path environment variable -- add path with spaces in the right wayLinux Path 环境变量——以正确的方式添加带空格的路径
【发布时间】:2019-11-19 11:35:15
【问题描述】:

我想在 Linux 下将路径附加到我的 PATH 环境变量。我在我的 Python 程序中临时执行此操作(通过设置 os.environ['PATH'])并且我希望它能够可靠地完成。特别是,我担心路径包含空格的情况。我尝试通过四种方式将这样的路径添加到 PATH 变量中:

  • 只是在路径后面加上空格:/a b c:/usr/bin
  • 用双引号括起来的路径:"/a b c":/usr/bin
  • 在单引号中附加带有空格的路径:'/a b c':/usr/bin
  • 附加带有用“\”转义的空格的路径:/a\ b\ c:/usr/bin

所以对我来说,只有第一种,最简单的方法有效。对于所有其他人,找不到我的可执行文件。这有点出乎意料,因为我确信我应该始终注意带有空格的路径并以某种方式处理它们。这种行为可靠吗?或者它可以中断并且有其他方法可以正确地将带有空格的路径添加到 PATH 中?

感谢您的关注!我确实在互联网上搜索过,但除了这个链接之外我没有找到这个信息:https://apple.stackexchange.com/questions/94679/how-do-cope-with-a-space-when-setting-the-path。但这里是关于如何添加到 PATH 的路径,而不是关于是否可以在没有任何引号或反斜杠或其他内容的情况下使用它。

【问题讨论】:

  • PATH 变量中的空格没有特殊含义,不需要引用或转义。
  • @Barmar,感谢您的评论!你知道,我在哪里可以找到这些信息吗?或者这是一种常识?实在是找不到了。
  • 反斜杠和引号将在PATH 变量中按字面意思处理,不要添加它们。唯一有任何特殊含义的字符是:,但我认为没有任何方法可以逃脱它。
  • 省略说明。 PATH 变量的描述并没有说明需要逃避的东西,所以不要。这只是一个由:分隔的路径名序列。
  • @Barmar,啊,我明白了。再次感谢您!

标签: python linux path environment-variables space


【解决方案1】:

PATH 环境变量中不需要转义空格,因为它在那里没有特殊含义。 因此,如果您将路径附加到 PATH 环境变量,则可以完全忽略该路径中存在的空格。

代码:

import os

path_to_add = '/home/user/My Path'  # A path with space

print(os.environ['PATH'])  # Prints /usr/local/bin:/usr/sbin

os.environ['PATH'] += os.pathsep + path_to_add
print(os.environ['PATH'])  # Prints /usr/local/bin:/usr/sbin:/home/user/My Path

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 2010-12-27
    相关资源
    最近更新 更多