【问题标题】:How to check a command for background operator '&'? [closed]如何检查后台运算符'&'的命令? [关闭]
【发布时间】:2012-09-29 10:45:41
【问题描述】:

我正在用 C 语言编写我的脚本。我从用户那里接受输入命令。现在我想确定输入命令中是否包含后台操作员?如果是,则在后台运行该 linux 系统命令,然后要求用户输入他要执行的另一个命令。 我是这个领域的新手,所以不太清楚,请帮助!

【问题讨论】:

  • 请显示您目前拥有的代码,您尝试满足该要求的内容,并说明它是如何失败/什么不工作。
  • 我还没有代码,c 和 linux 编程对我来说是新的,但我对它的理论有所了解。
  • 如果您还没有任何代码,Stack Overflow 并不是一个真正的好去处。寻找教程/阅读书籍/尝试一下。当您在特定任务上被阻止时,在 Stack Overflow 上提问。
  • 这可能对您的学习过程有很大帮​​助:advancedlinuxprogramming.com
  • 谢谢 Alexandre,我会完成的!

标签: c linux shell unix background-process


【解决方案1】:

您需要在字符串中找到您的“&”字符。

您可以使用strrchr,从末尾开始搜索字符串中的字符。如果找到,它将返回指向该字符的指针,如果未找到,则返回 NULL。 接下来,检查它是否是字符串的最后一个非空白字符。 (你可以从这个指针迭代直到你的字符串结束('\0'))

这不是一个完美的解决方案(你可以找到这样的 shell 命令:ls & ;) 但在你的情况下,我认为这就足够了。

【讨论】:

  • 它不适用于像echo \&这样的命令
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-10
  • 1970-01-01
  • 2019-04-13
  • 2022-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多