aliase in Shellscripts benutzen [gelöst]

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
cui
Beiträge: 89
Registriert: 08.07.2006 12:47:03
Wohnort: @~
Kontaktdaten:

aliase in Shellscripts benutzen [gelöst]

Beitrag von cui » 26.08.2006 15:29:59

Hallo.

Wie kann ich aliase (oder was ist der plural von alias :? ) global machen, also so, das man sie z.B. auch in Shellscripten benutzen kann? Bisher hab ich sie einfach immer in die .bashrc eingetragen, aber dann sind sie in Shellscripten nicht benutzbar.
Zuletzt geändert von cui am 26.08.2006 17:59:42, insgesamt 1-mal geändert.
Etch, Kernel 2.6.17-2-686, fluxbox
Searching a cool programming language? Try Ruby!
http://rubyforen.de

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 26.08.2006 15:38:05

funktioniert, wenn du die expand_aliases Option setzt:

Code: Alles auswählen

root@gms1:~# cat x.sh
#/bin/sh
alias xx="ls -l"
shopt -s  expand_aliases

xx /tmp
root@gms1:~# ./x.sh
insgesamt 40
drwx------ 2 root root 4096 2006-08-26 12:37 atop.d
drwx------ 3 gms  gms  4096 2006-08-26 12:32 gconfd-gms
drwx------ 3 root root 4096 2006-08-26 12:33 gconfd-root
drwx------ 2 root root 4096 2006-08-26 12:33 libgksu-w5ae7M
drwx------ 2 gms  gms  4096 2006-08-26 13:46 orbit-gms
drwx------ 2 root root 4096 2006-08-26 12:33 orbit-root
drwx------ 2 gms  gms  4096 2006-08-26 12:32 ssh-erloOx6725
drwx------ 2 gms  gms  4096 2006-08-26 12:32 ssh-kOJDlJ6653
drwx------ 2 gms  gms  4096 2006-08-26 15:28 v615934
drwx------ 2 gms  gms  4096 2006-08-26 15:29 v616093
Statt "aliases" könntest du dir aber auch Shell Funktionen schreiben

Gruß
gms

Benutzeravatar
cui
Beiträge: 89
Registriert: 08.07.2006 12:47:03
Wohnort: @~
Kontaktdaten:

Beitrag von cui » 26.08.2006 16:50:01

Interessant, wusste ich noch nicht. Aber eigentlich meinte ich was anderes. Beispiel:

imaginärer Auszug aus meiner .bashrc (oder einfach in der bash eingeben):

Code: Alles auswählen

alias foo="ls -l"
Beispielscript test.sh:

Code: Alles auswählen

#!/bin/sh
foo /
Ausführung von test.sh in der bash:

Code: Alles auswählen

$ chmod +x test.sh
$ test.sh 
./test.sh: line 2: foo: command not found
Es geht also um das Benutzen von außerhalb definierten aliases in Shellscripts.

Tut mir leid wenn ich mich undeutlich ausgedrückt habe.
Etch, Kernel 2.6.17-2-686, fluxbox
Searching a cool programming language? Try Ruby!
http://rubyforen.de

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 26.08.2006 17:12:39

Code: Alles auswählen

root@gms1:~# echo "alias xx='ls -l'" >>~/.bashrc
root@gms1:~# cat x.sh
#/bin/bash

shopt -s  expand_aliases

. ~/.bashrc

xx /tmp
root@gms1:~# ./x.sh
insgesamt 40
drwx------ 2 root root 4096 2006-08-26 12:37 atop.d
drwx------ 3 gms  gms  4096 2006-08-26 12:32 gconfd-gms
drwx------ 3 root root 4096 2006-08-26 12:33 gconfd-root
drwx------ 2 root root 4096 2006-08-26 12:33 libgksu-w5ae7M
drwx------ 2 gms  gms  4096 2006-08-26 13:46 orbit-gms
drwx------ 2 root root 4096 2006-08-26 12:33 orbit-root
drwx------ 2 gms  gms  4096 2006-08-26 12:32 ssh-erloOx6725
drwx------ 2 gms  gms  4096 2006-08-26 12:32 ssh-kOJDlJ6653
drwx------ 2 gms  gms  4096 2006-08-26 15:28 v615934
drwx------ 2 gms  gms  4096 2006-08-26 15:29 v616093

Benutzeravatar
cui
Beiträge: 89
Registriert: 08.07.2006 12:47:03
Wohnort: @~
Kontaktdaten:

Beitrag von cui » 26.08.2006 17:57:10

Gab auch erst ne Fehlermeldung, dann hab ich gemerkt, dass er die .bashrc nicht zuende ausführt, wegen folgender Zeile:

Code: Alles auswählen

[ -z "$PS1" ] && return
Nachdem ich die auskommentiert hatte gings. Danke!
Etch, Kernel 2.6.17-2-686, fluxbox
Searching a cool programming language? Try Ruby!
http://rubyforen.de

Antworten