【问题标题】:How to source value with $ char in bash如何在 bash 中使用 $ char 获取值
【发布时间】:2020-11-25 15:52:13
【问题描述】:

我有一个包含一些变量的文件。

- myvarfile - 
host="localhost"
port="8080"
user="john"
pass="neoj$vae"

当我将此文件导入 bash 脚本时,显然 pass 的值为“noej”,切割“$vae”。 如何获取完整的字符串?

注意:传递值是随机生成的,所以我不知道其中包含哪些字符。 谢谢。

【问题讨论】:

  • 你必须有一些设置为$vae 的值的东西,在你获取myvarfile 之前执行。我刚刚测试过,一旦我执行了vae=ABC,然后获取你的文件,echo $pass 产生了neojABC。祝你好运。
  • 这能回答你的问题吗? Escape dollar sign in string by shell script
  • 严格来说,没有任何内容被剪切。 $vae 被变量vae 的当前值替换,而该变量恰好为空。
  • 如果您的意思是 literal 值,包括美元符号作为密码中的一个字符,请使用单引号。

标签: bash escaping


【解决方案1】:

阅读关于不同类型引号字符的 bash 手册

pass="neoj$vae"
echo $pass
neoj
pass='neoj$vae'
echo $pass
neoj$vae

【讨论】:

  • 这看起来是最有可能的正确答案,因为问题不清楚(恕我直言)。祝大家好运。
【解决方案2】:

使用像pass='neoj$vae'这样的单引号

【讨论】:

    猜你喜欢
    • 2021-04-08
    • 2013-11-30
    • 2011-05-09
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多