Kopieren und benennen Sie bestimmte Dateien nacheinander aus einer PM2-Liste mit laufenden Apps

Kopieren und benennen Sie bestimmte Dateien nacheinander aus einer PM2-Liste mit laufenden Apps

Ich möchte eine Bash erstellen, um eine bestimmte Datei (app8000.js) in denselben Ordner zu kopieren und sie entsprechend einer Liste bereits laufender Apps auf meinem pm2 (app8001.js, app8002.js, app8003.js) sequenziell umzubenennen. Anschließend möchte ich in der Datei nach „8000“ suchen und es durch die Nummer im neuen Dateinamen ersetzen, etwa: „8004“, „8005“, „8006“...

Um es klarer zu machen:

  1. kopiere die Originaldatei (zB app8000.js)
  2. Suchen Sie in der Liste der auf pm2 ausgeführten Apps nach der neuesten Nummer (z. B. app8003.js).
  3. Benennen Sie die neue Datei in „app8004.js“ um.
  4. Suche in dieser neuen Datei nach einem bestimmten Text wie „8000“ und ersetze alle Übereinstimmungen durch „8004“.
  5. pm2 starte diese neue App

Entschuldigen Sie mein schlechtes Englisch, Linux-Anfänger, also seien Sie bitte nachsichtig mit mir :)

Wir sind für jede Hilfe dankbar.

Prost!

Antwort1

Ich bin nicht sicher, ob ich Ihre Anfrage richtig verstehe, aber Sie können Folgendes versuchen:

#!/bin/bash

numberOfProcess=$(find . -name 'app*' -printf x | wc -c)
newID=$((8000 + $numberOfProcess))
cp app8000.js app$newID.js

verwandte Informationen