逃逸支撑扩张与回声

时间:2016-03-03 14:26:40

标签: bash escaping variable-expansion

我不能让这一行在我的bash脚本上运行:

echo "VAR=$(ps ax | grep myprocess)" >> myprocess

如何逃避$(ps ax | grep myprocess)扩展?

我想要一个包含此内容的myprocess文件:

VAR=$(ps ax | grep myprocess)

编辑:我使用的示例过于简单,但它旨在显示具体问题。这是真正的命令:

su - -c "echo \"#!/bin/bash\nPID=$(ps ax | grep elasticsearch-${VERSION}.jar | grep -v grep | cut -f1 --delimiter=\" \" -s)\nif [ -n \"\${PID}\" ];\nthen\n\tkill \${PID}\n\techo \"ElasticSearch process killed.\"\nelse\n\techo \"ElasticSearch is not running.\"\nfi\" >> /home/user/start_elastic" user

一些注意事项:

  • 我无法更改为单引号,因为$ {VERSION}不会被替换。
  • 我尝试添加这样的反斜杠:\$(,但它没有用。在创建start_elastic文件之前执行评估。

0 个答案:

没有答案