Moin,
welche Solaris Version benutzt du denn?
Der Fehler sagt eindeutig, dass dein Script bereits beim Start von /bin/bash scheitert (warum ueberhaupt bash statt sh?). Schau mal nach ob es /bin/bash auf deinem System gibt und ob sich die starten laesst. Sollte das der Fall sein, so schau mal nach ob in der ersten Zeile bei dir wirklich nur ein #!/bin/bash steht (nicht das da am Ende noch ein CTRL-M oder aehnliches folgt...).
Selbst wenn du das in den Griff bekommen hast, so wird dein Script trotzdem nicht klappen weil zu "tar xzf" benutzt und Solaris tar keine z Option kennt (die gibt es nur beim GNU tar). Also entweder hier gtar (GNU tar) verwenden oder aus dem "tar xzf" zwei Befehle machen ("gzcat filename.tar.gz | tar xf -").
Als naechstes loescht du einfach die Einagbedateien ohne zu Wissen ob das Auspacken geklappt hat (und wie gerade erwaehnt wird das eh nicht klappen). Besser: den rm Befehl nur ausfuehren, wenn der tar geklappt hat...
#!/bin/sh
for i in *.tgz; do
gzcat $i | tar xf - && rm -f $i
done
esxupdate -n -r file:/var/update/ESX-patch1 update
esxupdate -n -r file:/var/update/ESX-patch2 update
Tschau,
Drusus.