この行を 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
ます。