【发布时间】:2019-05-05 17:42:42
【问题描述】:
波浪号在双引号内不起作用。这是什么原因。有时它是工作。有两种方式玷污波浪号。但第二种方法是工作正常和完美。真正的原因是什么?
方法01
#!/bin/sh
location="~/my_documents"
cd "${location}"
方法02
#!/bin/sh
location=~/"my_documents"
cd "${location}"
【问题讨论】:
-
我不确定为什么这被多个其他用户标记为离题。这与Shell编程非常相关。
-
如果它没有因为离题而关闭,它就有资格作为重复关闭;我们有 大量 来自存在由区别引起的错误的人的问答条目。
-
...我可能会选择Why is a tilde in a path not expanded in a shell script? - 是的,看问题的标题并不明显;这实际上是使它成为 good 重复的原因(一个可以帮助其他人使用标记的搜索词找到预先存在的规范问题)而不是一个糟糕的重复(有人只是在询问之前没有费心搜索一个基本相同的新问题)。
-
@xuhdev ...也就是说,支持关闭作为题外话的论点(并不是说我要采取任何一种方式)是shell问题很可能会被绊倒就其是否满足stackoverflow.com/help/on-topic 中的“软件开发独有”条款而言,在脚本中的交互使用是有问题的(该条件被与其他约束条件相结合); “X 独有”比仅仅“与 X 相关”要严格得多。
-
@CharlesDuffy 我不明白为什么 shell 脚本会被交互式使用。 Shell 脚本在软件开发中非常常见,在 POSIX 系统中几乎无处不在!例如,shell 脚本占Git 中代码的 35%。如果您正在寻找“独特”,我认为 JavaScript 或 CSS 也不相关,因为我经常在浏览器中作为用户进行更改。这些问题应该属于超级用户!