【问题标题】:What is the different tilde "~/<folder>" vs ~/"<folder>" in a Shell script [closed]Shell脚本中的波浪号“~/<folder>”与~/“<folder>”有什么不同[关闭]
【发布时间】: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 也不相关,因为我经常在浏览器中作为用户进行更改。这些问题应该属于超级用户!

标签: linux shell tilde


【解决方案1】:

在引号内,~ 未展开。它被用作字符

【讨论】:

  • 是的,我知道我问这是什么原因? “~/documents”有时是有效的。
  • 发布它的工作示例
猜你喜欢
  • 1970-01-01
  • 2016-01-25
  • 2011-09-09
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 2017-07-12
  • 2021-02-03
  • 2016-02-10
相关资源
最近更新 更多