Hallo,
Ich habe hier http://www.debianforum.de/forum/viewtopic.php?t=80931 zwar schon einen Thread laufen, aber ich glaube, der lange Text schreckt eher ab.
Meine Frage ist ganz einfach.
Ich habe hunderte von alten Scripten mit #!/bin/sh oder #!/bin/ksh Umgebung, in denen echo ohne Option -e aufgerufen wird (diese Option existiert unter AIX nicht, wo die meisten der Skripte erstellt wurden) und die \xxx Oktale Steuerzeichen ausgeben sollen.
Nun ist unter Debian echo -E der Standard, sodass die Backslash Steuerzeichen als ASCII interpretiert werden.
Kann ich diesen Default irgendwie umgehen? Existiert eine Umgebungsvariable oder eine Konfigurationsdatei, in der ich das Defaultverhalten auf -e ändern kann?
Danke schon im Vorraus,
Alexander
[gelöst] shell scripting umgebung für echo in ksh
-
- Beiträge: 85
- Registriert: 21.12.2006 16:39:16
[gelöst] shell scripting umgebung für echo in ksh
Zuletzt geändert von gentoo_convertant am 13.03.2007 13:32:48, insgesamt 1-mal geändert.
- SubOptimal
- Beiträge: 1709
- Registriert: 10.01.2005 23:25:46
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: bei Frankfurt
Hi,
für dieses Verhalten ist die Shelloption "xpg_echo" zuständig, welche standardmäßig ausgeschaltet ist. De-/aktiveren lässt sie sich mittels "shopt".
Ein paar weitere Infos liefert "man bash".
SubOptimal
für dieses Verhalten ist die Shelloption "xpg_echo" zuständig, welche standardmäßig ausgeschaltet ist. De-/aktiveren lässt sie sich mittels "shopt".
Code: Alles auswählen
echo "ein\tTab"
shopt -s xpg_echo
echo "ein\tTab"
shopt -u xpg_echo
echo "ein\tTab"
SubOptimal
-
- Beiträge: 85
- Registriert: 21.12.2006 16:39:16
Das Problem liegt hier
Natürlich könnte ich /bin/ksh durch ein Script ersetzen.
Wenn ich noch zusätzlich die Readline in the vi modus schalte, werden die Benutzer wahrscheinlich nie etwas bemerken. Aber ich bin sicher, dass einige der Skript Probleme machen werden.
Die sh könnte man so umgehen (wenn auch nur mit Hilfe eines Scripts, das eine bash ausführt und shopt setzt). aber für ksh existiert meines Wissens kein shopt. Und ksh hat unter Debian kein eingebautes echo, sodass das Systemweite echo verwendet wird.Ich habe hunderte von alten Scripten mit #!/bin/sh oder #!/bin/ksh Umgebung,
Natürlich könnte ich /bin/ksh durch ein Script ersetzen.
Code: Alles auswählen
#!/bin/bash -l -O xpg_echo
-
- Beiträge: 85
- Registriert: 21.12.2006 16:39:16