- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的 bash 脚本中有一个变量,它的值是这样的:
~/a/b/c
请注意,它是未展开的代字号。当我对这个变量(称之为 $VAR)执行 ls -lt 时,我没有得到这样的目录。我想让 bash 解释/扩展这个变量而不执行它。换句话说,我希望 bash 运行 eval 但不运行评估的命令。这在 bash 中可能吗?
我是如何在不扩展的情况下将其传递到我的脚本中的?我用双引号将参数括起来。
试试这个命令看看我的意思:
ls -lt "~"
这正是我所处的情况。我希望扩展波浪号。换句话说,我应该用什么来替换 magic 以使这两个命令相同:
ls -lt ~/abc/def/ghi
和
ls -lt $(magic "~/abc/def/ghi")
请注意,~/abc/def/ghi 可能存在也可能不存在。
最佳答案
如果变量 var
由用户输入,eval
应该不用于扩展代字号 using
eval var=$var # Do not use this!
原因是:用户可能会意外(或有意)输入例如 var="$(rm -rf $HOME/)"
并可能造成灾难性后果。
更好(也更安全)的方法是使用 Bash 参数扩展:
var="${var/#\~/$HOME}"
关于bash - 如何手动扩展特殊变量(例如 : ~ tilde) in bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45418733/
如果您阅读 jQuery inArray 页面上的评论 here ,有一个有趣的声明: !!~jQuery.inArray(elm, arr) 现在,我相信双感叹号会将结果转换为 boolean 类型
如果您阅读 jQuery inArray 页面上的评论 here ,有一个有趣的声明: !!~jQuery.inArray(elm, arr) 现在,我相信双感叹号会将结果转换为 boolean 类型
例如: unsigned int i = ~0; 结果:我可以分配给i的最大数量 和 signed int y = ~0; 结果:-1 为什么我得到 -1?我不应该得到可以分配给 y 的最大数量吗?
我正在使用Powershell脚本将文件解析为不同的分隔格式,可以轻松地将其加载到Excel或DB中。 除了找到并替换字符串“〜S〜|”以外,我基本上都了解了它其中所有字符都应采用文字。 我尝试了以下
我有一个我想重定向的 URL,但是我似乎无法在 vim 中输入该字符。 字符是 ¬(逻辑否定),我想将它重定向到 ~(波浪号)。 Redirect permanent /¬foo http://www
我有一个我想重定向的 URL,但是我似乎无法在 vim 中输入该字符。 字符是 ¬(逻辑否定),我想将它重定向到 ~(波浪号)。 Redirect permanent /¬foo http://www
我想从文本文件存储 2 个东西(仅名称和值) ~sing 之后的任何内容都应该作为一个名为“Name”的字符串进行线程处理,而“:”冒号之后的任何内容都应该是一个名为“Value”的整数 示例输出应如
我很惊讶这个扩展: $ echo "${foo:~abc}" 当 foo 未设置时产生空字符串。我预计它会像这样解析: $ echo "${foo:(~abc)}" 并产生字符串“~abc”。但是相反
我的 bash 脚本中有一个变量,它的值是这样的: ~/a/b/c 请注意,它是未展开的代字号。当我对这个变量(称之为 $VAR)执行 ls -lt 时,我没有得到这样的目录。我想让 bash 解释/
这样的事情可能吗? a, a:active~a.active { color:#000; background:#fff; } a.active, a:active { b
我的 bash 脚本中有一个变量,它的值是这样的: ~/a/b/c 请注意,它是未展开的代字号。当我对这个变量(称之为 $VAR)执行 ls -lt 时,我没有得到这样的目录。我想让 bash 解释/
我正在开发键盘应用程序,但遇到了问题。我想以编程方式在 android 的 EditText 中限制/阻止软键盘中的某些特殊字符。 那么,有什么办法可以限制在 android 的编辑文本中输入任何特殊
我只是在 HAML/Rails 形式中偶然发现了这一行: ~ f.input :content, label: false 波浪号有什么作用? 最佳答案 Whitespace Preservation
我们有这样的声明: {{~#if someCondition ~}} {{~/if~}} 简单if有什么区别声明和 if Handlebars 模板中带有“~”的语句? 最佳答案 它被称为波浪号,可
我有一个来自常规代码的正则表达式: (?:[^\p{Alnum}äöü**~D~V~\~_**]|^) (?:sometext|s\.t\.) (?:[^\p{Alnum}äöü**~D~V~\~_*
我的 zsh 正在替换 !~使用我之前运行的命令。这是一个问题,因为当我运行 awk '$1 !~ /abc/ 时,它取代了 !~与命令。 关于如何禁用它的任何想法?这可能不是 zsh 的错,但在谷歌
这个问题在这里已经有了答案: What does ~~ ("double tilde") do in Javascript? (13 个答案) 关闭 10 年前。 我在一些代码中看到了这个,但我不知
我今天在查看一个在线游戏物理库时遇到了 ~~ 运算符。我知道单个 ~ 是按位 NOT,这会使 ~~ 成为 NOT 的 NOT,这会返回相同的值,不是吗? 最佳答案 它会删除小数点后的所有内容,因为按位
我正在努力理解我在 jsFiddle ( http://jsfiddle.net/Pm3cj/3/ ) 中找到的 jQuery 选择器。选择器是: '~.container, ~:has(.conta
我通过 angular-cli 设置了一个 angular 6 项目。 我安装了 karma-scss-preprocessor 作为开发依赖,以便在 karma 测试中加载 sass 文件。以下 k
我是一名优秀的程序员,十分优秀!