【问题标题】:Escape characters, literal quotations, and variables in KornShell (ksh) script commandKorn Shell (ksh) 脚本命令中的转义字符、文学引用和变量
【发布时间】:2012-08-26 02:35:09
【问题描述】:

全新的 KornShell (ksh)。我有一个非常痛苦但希望很简单的问题。

我需要运行一个包含单引号和一个变量的字符串参数的脚本。在 shell 中,它看起来像这样:

run_script -x '*082512*'

而且效果很好。

但是一旦我尝试在带有日期变量的脚本中运行它,我就无法生成那些单引号。我已经毫无问题地制作了“今天的日期”变量:

today=$(date "+%m%d%y")

但是当我尝试运行脚本时会出现问题。我已经尝试了引号中所有可能的引号组合以及转义单引号等,但无济于事。

任何有关此问题的见解将不胜感激。

【问题讨论】:

  • run_script -x "*${today}*" 在什么情况下无法工作?请注意,示例中的单引号仅对 shell 有意义,对您的脚本没有意义:当您的脚本获取参数时,单引号不存在。

标签: shell unix scripting ksh


【解决方案1】:

在这里评论,因为格式更好。

你试过了吗

today=$(date "+%m%d%y")
run_script -x '*'"$today"'*'

正如 Glenn Jackman 所指出的,quote 仅在您输入命令的第一级 shell 调用中“看到”。

如果上述方法对您没有帮助,请考虑编辑您的问题以显示准确的用例、准确的错误消息或其他非预期行为。

祝你好运。

【讨论】:

  • 这行得通。绝对认为我已经尝试过,但我想没有。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
相关资源
最近更新 更多