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