alias bei script unberuecksichtigt
Hallo Um als Normaluser ein Modul insmoden zu koennen, habe ich mir ein sudo in /etc/sudo?? eingerichtet und einen alias von insmod="sudo /sbin/insmod" gemacht. Das eigentliche Problem liegt aber hier: Der alias ist in /home/user/.bashrc festgehalten. Die Module werden nun mit einem shellscript geladen, was leider nicht funktioniert. Ich habe mit #!/bin/bash und #!/bin/sh probiert, aber bei einem script scheint /home/user/.bashrc nicht ausgelesen zu werden, selbst wenn ich bereits in einer shell bin wo insmod funktioniert. Weiss jemand von euch welche konfigurationsdatei abgearbeitet wird, wenn scripts gestartet werden? Merci.... Patrick Joerg HTA Burgdorf Schweiz www.isburg.ch
Patrick JOERG wrote:
Der alias ist in /home/user/.bashrc festgehalten. Die Module werden nun mit einem shellscript geladen, was leider nicht funktioniert.
Das du fuer die interaktive Sitzung einen Alias hast, finde ich ja noch ganz praktisch. Aber warum du im Skript nicht einfach "sudo insmod" schreibst, will mir nicht klar werden. Peter
On Friday 13 June 2003 15:47, Patrick JOERG wrote:
Ich habe mit #!/bin/bash und #!/bin/sh probiert, aber bei einem script scheint /home/user/.bashrc nicht ausgelesen zu werden, selbst wenn ich bereits in einer shell bin wo insmod funktioniert.
man bash: When an interactive shell that is not a login shell is started, bash reads and executes commands from ~/.bashrc, if that file exists. This may be inhibited by using the --norc option. The --rcfile file option will force bash to read and execute commands from file instead of ~/.bashrc.
Weiss jemand von euch welche konfigurationsdatei abgearbeitet wird, wenn scripts gestartet werden?
"man bash" weiß sowas... ;-)
Aber es ist prinzipiell nie eine gute Idee, sich in Scripts auf so etwas zu
verlassen. Ein Script muß seine eigene Umgebung so aufbauen, wie sie
gebraucht wird. Wenn Du schon weiß, daß Du hier "sudo" brauchst, warum
schreibst Du es dann nicht einfach hin? (Im Script)
CU
--
Stefan Hundhammer
Hallo, On Fri, 13 Jun 2003, Patrick JOERG wrote:
Weiss jemand von euch welche konfigurationsdatei abgearbeitet wird, wenn scripts gestartet werden?
Kommt auf die shell an. Daher die "Allgemeine Loesung" die auch mit anderen Programmen funktiontioniert: strace -e open <programm> <optionen> Also z.B.: $ cat shconfig.sh #!/bin/bash env $ strace -e open /bin/bash shconfig.sh 2>&1 \ | grep -v '/lib/\|/locale/\|/i18n/' open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 open("/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3 open("shconfig.sh", O_RDONLY|O_LARGEFILE) = 3 PWD=/tmp/test3 [Rest von env] $ Also keine. Ganz anders sieht's aus, wenn du eine neue shell aufrufst, da werden dann ganz normal die config-Dateien abgearbeitet. Zu deinem eigentlichen Problem: es gibt schlicht keine aliase. Ausweg: a) verwende die vollen Kommandos (ein script scheibst du ja i.d.R. nur einmal) oder b) source die Config-Datei mit den aliasen selbst im script: test -r ~/.bashrc && . ~/.bashrc Ausweg a) ist IMO der bessere. -dnh -- "We apologise for the inconvenience" ("God's Final Message") --- Douglas Adams (P.S.: I think, I feel good about it, too...)
participants (4)
-
David Haller
-
Patrick JOERG
-
Peter Wiersig
-
Stefan Hundhammer