【问题标题】:escaping colon in bash script在 bash 脚本中转义冒号
【发布时间】:2017-06-04 05:39:54
【问题描述】:

大家好,我正在尝试编写一个脚本,其中的命令应包含冒号字符':'。查看this document,字符可以使用这个字符'^'进行转义,但是他们没有提到冒号字符。

命令应该是:

iwconfig wlan0 key s:AsciiPassword

所以在我的脚本中我有类似的东西:

iwconfig $interface key s:$password

当我手动运行第一个命令时,它显然执行了预期的操作,但是脚本中的第二个,什么都没有!!! 希望有任何帮助

更新: 我无法真正产生输出,因为该命令不会产生任何输出。

【问题讨论】:

  • “我有类似的东西”?请使用人们可以复制/粘贴到他们的终端并获得相同错误消息的代码更新您的 Q。照原样,这将是一个有 20 个问题的游戏。祝你好运。
  • 问题不在于冒号;你确定interfacepassword 的值正确吗?
  • 你链接的页面不是关于bash的;这无关紧要。

标签: linux bash shell escaping


【解决方案1】:

您链接的那个文档与 windows 相关。

在 bash 中;用“\”转义。

你可能还想引用你的变量扩展

我想你需要:

iwconfig "${interface}" key s:"${password}"

可能需要转义:,尽管我对此表示怀疑。如果是这样,那就是:

iwconfig "${interface}" key s\:"${password}"

【讨论】:

  • 你不需要转义冒号;假设变量值是正确的,引用扩展是唯一可能产生影响的事情。
  • 这也是我的想法;但我想我会包含一个示例,说明当该人引用错误平台的指南时它是如何完成的。很可能是您所说的扩展。
  • 明确很重要;否则,您暗示它可能会起作用,并且您往往会得到类似“我逃脱了冒号但它不起作用”的响应。尽量将此类投诉扼杀在萌芽状态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 1970-01-01
  • 2013-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多