0

我无法使这一行在我的 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在创建文件之前执行评估。
4

0 回答 0