Wechsel von ash zu bash, was ist zu beachten oder sein lassen?

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

derilzemer

Benutzer
Registriert
16. Apr. 2009
Beiträge
69
Reaktionspunkte
0
Punkte
0
Hi@all
ich habe mir nach 3 Jahren Abstinenz wieder eine Synology zugelegt, 412+.
Jetzt habe ich alles umgezogen von meinem Linuxserver und läuft auch alles soweit. Was ich jedoch nicht läuft sind diverse Scripts von mir.
Da ich nicht so der König bin was Scriping bzw. das programmieren selbiger angeht, habe ich da so meine Fragen dazu.
Die Script laufen nicht mehr, liegt wohl daran dass ash nicht richtig interpretiert, z.B. ash: =~: unknown operand
Meine Scripts sind im Kopf zumeist
#!/bin/bash wenige auch mit #!/bin/ksh (die funktionieren auch mit ash)
Ich habe mir via ipkg bash Version 3.2.49-1 installiert. Was muss ich alles tun und beachten, wenn ich umstellen will auf bash? Ich meine mich noch schwach erinnern zu können, dass man da einiges beachten muss, ansonsten hat man sich beim Verlust von opt schnell mal ausgeschlossen (root PW) etc.
Was ist alles zu beachten, oder gibt es etwa einen anderen Weg der besser/einfacher ist?
Vielen Dank vorab für eure Hilfe bzw. Ratschläge
Gruß Andreas
 
Hallo,
Du hast ein gutes Gedächtnis :). Meiner Meinung nach wäre der sicherste Weg /opt/bin/bash nach /usr/local/bin/bash zu kopieren und die Scripte entsprechend anzupassen.
Rich (BBCode):
#!/usr/local/bin/bash
wenn das verzeichnis noch nicht vorhanden ist dann einfach als root anlegen. Alles unter /usr/local überlebt ein Firmwareupgrade und die Shell ist auch erreichbar wenn Volume1 (@optware) mal streikt.

Gruß Götz
 
Hi,

danke erst einmal. Das war wohl der einfache Schritt. Script habe ich auf den neuen Pfad zur bash angepasst. Jetzt nach Ausführung ist die ash immer noch Priorisiert (sehe ich wenn ich script ausführe).
Jetzt muss ich ja wahrscheinlich die /etc/profile noch bearbeiten (#/etc/profile: system-wide .profile file for ash.), da die ja global ist, oder?
Muss ich darin den Path noch anpassen? Wenn ich mir den anschaue, dann ist das doch okay, oder etwa nicht?

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
export PATH

Sorrry wenn ich evnetuell "komisch" erscheinende Fragen stelle, aber ist eben nicht mein Spezialgebiet :(

Gruß Andreas
 
Hallo,
Jetzt nach Ausführung ist die ash immer noch Priorisiert (sehe ich wenn ich script ausführe).
gib bitte man ein Beispiel, vermutlich Befehle die nicht direkt in der bash integriert sind.

Gruß Götz
 
Hi,

als Beispiel

ash: =~: unknown operand
Da sind im Script Sequenzen wie......if [[ "$datei_nummer" =~ [0-9] ]]; then

Das ganze lief vorher auf meinem Server tadellos.

Gruß Andreas
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat