Hi,
Ich wollte ein shell script schreiben. Dabei sollte das shell script innerhalb einer for-Schleife in verschiedene Nutzerverzeichnisse wechseln. Deshalb habe ich der Variablen nacheinander die Nutzernamen zugewiesen. Dabei stieß auf folgenden Fehler bei Benutzung der bash. Hier die Version in der interaktiven shell :
[mf@mephisto /tmp]$ A=root [mf@mephisto /tmp]$ echo ~$A ~root [mf@mephisto /tmp]$ cd ~$A bash: ~root: No such file or directory [mf@mephisto /tmp]$
Ich glaube, daß die Substitution der ~ vor der der Variablen geschieht, obwohl die shell von rechts nach links vorgeht. Kann man die bash anweisen, die Variable vor der ~ zu substituieren ? Übrigens : in der tcsh funktionierts. Ist das ein bug der bash ?
Was meint ihr dazu ?
Matthias.
-+------------------------------------------ | Matthias Fichtner | Dresden University of Technology | Department of Computer Sience | mf14@inf.tu-dresden.de -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
On Mon, Nov 29, 1999 at 06:39:00PM +0100, Matthias Fichtner wrote: : Hi, : [mf@mephisto /tmp]$ A=root : [mf@mephisto /tmp]$ echo ~$A : ~root : [mf@mephisto /tmp]$ cd ~$A : bash: ~root: No such file or directory : [mf@mephisto /tmp]$ : : : Ich glaube, daß die Substitution der ~ vor der der Variablen geschieht, : obwohl die shell von rechts nach links vorgeht. Kann man die bash anweisen, : die Variable vor der ~ zu substituieren ?
Versuch' mal
eval cd ~$A
Heiko
Hi
On Mon, 29 Nov 1999, Matthias Fichtner wrote:
Hi,
[mf@mephisto /tmp]$ A=root [mf@mephisto /tmp]$ echo ~$A ~root [mf@mephisto /tmp]$ cd ~$A bash: ~root: No such file or directory [mf@mephisto /tmp]$
Ja die Substitution der Tilde erfolg for der Variablen damit das ganze funktiniert solltes du das ganze noch mal durch eval jagen. also
eval cd ~$A
bei laeuft das so
Tschau Michael
lug-dd@mailman.schlittermann.de