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