2016-06-24 11 views
0

Ich möchte einige Skripte (bash) schreiben, die auf alle Arten von Linux (hauptsächlich auf Ubuntu, CentOs, Redhat) funktionieren sollte.Gemeinsame Skripte über Aromen von Linux schreiben

Wie kann ich Skripte unabhängig vom Betriebssystemtyp machen?

Gibt es einen Online-Konverter, um Skripte kompatibel mit anderen Linux-Versionen zu machen?

Oder was ist der beste Weg, um dieses Szenario zu behandeln.

+1

Wenn Sie nur Bash benötigen, sind die Versionen pro Distributionen die lästigste Tatsache, die Sie berücksichtigen sollten. ... 1. Schlagen Sie vor, die Versionsinformationen auf diesen Plattformen für Bash zu sammeln und die Änderungen nachzuschlagen. 2. Meistens sind die Shell-Skripte, die ich kenne, die Verbindung zwischen Aufrufen zu anderen Programmen, die Versionen und (fehlende) Optionen pro Version haben ... und sicher sein, wenn es kein Korn oder z oder c oder was nicht gibt Shell auf einer Plattform, damit Sie sich auf die Bash-Syntax konzentrieren können. – Dilettant

Antwort

0

Erstens: Auf diesem Link können Sie mehr Informationen zu diesem Thema und zur Überprüfung, ob ein POSIX-Shell ist konform sehen. Sie müssen sicherstellen, dass Ihr Skript in Bezug auf die von Ihnen ausgeführten Befehle mit einigen Shell-Versionen kompatibel ist.

Sekunde. Sie müssen die Kompatibilität testen, indem Sie Ihr Skript ausführen und prüfen, ob es das tut, was es tun soll.

Dritte. Wenn Sie einige Dateien/Verzeichnisse in verschiedenen Distributionen ausführen/lesen/schreiben müssen, müssen Sie ein vorlaufendes Skript schreiben, dessen Ziel es ist, die Pfade der erwähnten Dateien/Verzeichnisse zu überprüfen und sie auf Variablen zu setzen, die dies sein werden verwendet von Ihrem Skript.

Zum Beispiel: Ihr Skript muss einige binäre ausführen, aber Sie wissen nicht, wo es wirklich ist. Sie überprüfen und diese binäre herauszufinden, an verschiedenen Orten befindet sich auf der Distribution abhängig:

1- In Ubuntu in ist /usr/bin/somebinary

2- In CentOs ist in /bin/somebinary

Daher Ihre Pre-run-Skript würde tun:

SOMEBINARY_FULLPATH=$(whereis somebinary) 

Oder so etwas. Das Gleiche wäre zu tun, wenn dieselbe Binärdatei unterschiedliche Parameter hat, abhängig von der ausgeführten Distribution (z. B. zwischen grep-Versionen in Linux und * BSD)

Verwenden Sie abschließend die Variablen, um Ihre Befehle auszuführen .

Grüße.