ist jedeenfalls in 2facher Hinsicht falsch:
1. Bei Zuweisungen in der Shell gibt es, im Gegensatz zu vielen anderen Programmiersprachen, keinerlei Toleranz hinsichtlich der Leerzeichen ums Gleichheitszeichen, weder davor, noch danach. Unser Zwischenstand wäre daher:
aber das ist leider immer noch falsch. Du möchtest die Ausgabe des Programms dem x zuweisen - dann brauchst Du - ich glaube der Fachausdruck ist - command substitution:
| x=$(pidof java);
# oder
x=$(pidof java;)
|
Das würde bei einem laufenden Javaprozess dann funktionieren.
Mit dem Semikolon ist es auch anders als in C, C++, Java und einigen anderen Sprachen, aber damit sind die Shellsprachen nicht alleine: Es wird benötigt um innerhalb einer Zeile mehrere Befehle voneinander abzugrenzen und ist wie ein Zeilenumbruch. Wenn Du aber eh danach einen Zeilenumbruch hast, dann brauchst Du es nicht.
Apropos "brauchst Du nicht": exit 0 als letzten Befehl brauchst Du auch nicht, außer Du willst einen vorigen Fehler verbergen. Es ist wie mit einem Roman, bei dem nach dem letzten Satz "Ende." im Buch steht. Das merkt der User auch so, dass da Ende ist, und zwar daran, dass nichts mehr kommt. Exit brauchst Du um einen Endecode zu erzwingen, der Fehler etwa kaschiert, was sehr selten eine gute Idee ist, oder einen Fehler anzeigt, wo keiner war - auch meist kein hilfreiches Vorgehen. Ansonsten braucht man exit um vorzeitig die Bearbeitung zu beenden.