functionsname in variable speichern

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

functionsname in variable speichern

Beitrag von latenite » 23.09.2009 20:34:33

Hallo Leute

wie kann ich den namen einer Funktion in einer Variale speichern?

Code: Alles auswählen

#/bin/bash

function partitioning() {
local MYNAME=$0
echo $MYNAME
}
sollte dann "partitioning" ausgeben?

aber $0 is es nicht das is ja der scriptname.
Is bestimmt ganz einfach..aber wie? :)

Danke

yeti

Re: functionsname in variable speichern

Beitrag von yeti » 24.09.2009 01:10:06

Code: Alles auswählen

(yeti@xs3:3)~$ utanapischti() { local myname=${FUNCNAME} ; echo ${myname} ; }
(yeti@xs3:3)~$ utanapischti 
utanapischti

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Re: functionsname in variable speichern

Beitrag von latenite » 24.09.2009 02:19:11

$FUNCNAME > super das war's!
Woher wisst ihr so was immer? Welche Manpage hätte ich mir da zugemüte führen müssen um selber drauf zu kommen?

auf jeden Fall Danke :)
gibt es da so was wie ne Tabelle mit all den "nützlichen" Variablen? ich habe hier nur eine ganz kurze mit $0, $1;$? etc.

danke :)

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: functionsname in variable speichern

Beitrag von rendegast » 24.09.2009 03:14:34

Code: Alles auswählen

man bash
Und hier ist wieder das Problem: es ist auf bash oder ähnliche Shells beschränkt.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

yeti

Re: functionsname in variable speichern

Beitrag von yeti » 24.09.2009 06:20:16

rendegast hat geschrieben:

Code: Alles auswählen

man bash
Und hier ist wieder das Problem: es ist auf bash oder ähnliche Shells beschränkt.
Definitiv!
Mehr Tippaufwand hinzunehmen und mit "local FUNCNAME=funktionsname" den Funktionsnamen selbst in eine Variable zu schubsen wäre natürlich portabler, aber ich fühle mich weder verpflichtet, noch berufen, in dieser Angelegenheit zu missionieren.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: functionsname in variable speichern

Beitrag von rendegast » 24.09.2009 10:12:08

yeti hat geschrieben:aber ich fühle mich weder verpflichtet, noch berufen, in dieser Angelegenheit zu missionieren.
Nicht missionieren, nur in Hinweis.

In testing-squeeze ist gerade das Duo (POSIX-) dash / bash eingeführt worden.
Vorher war das bei mir bash mit einer bash-sh.
Meine '#!/bin/sh'-Skripte funktionierten, denn die "Pseudo-POSIX"-bash-sh hat im Zweifelsfall doch bash-Funktionalität benutzt.
Mit der streng POSIX-konformen dash sind dann aber einige gegen die Wand gefahren.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

yeti

Re: functionsname in variable speichern

Beitrag von yeti » 24.09.2009 10:32:57

rendegast hat geschrieben:Meine '#!/bin/sh'-Skripte funktionierten, denn die "Pseudo-POSIX"-bash-sh hat im Zweifelsfall doch bash-Funktionalität benutzt.
Mit der streng POSIX-konformen dash sind dann aber einige gegen die Wand gefahren.
Völlig klar: Shebang-/bin/sh sollte man ausschließlich vor tatsächliche SH-Skripte schreiben und daß /bin/sh unter den Linixoïden zumeist ein Link auf die BASH ist, verleitet zu manchem Fehler/Unsinn.

Über den Un-/Sinn dergleich erweiterter Shells wie BASH mag man streiten, aber sie existieren und haben einen beträchtlichen Marktanteil.

Aber ging es in diesem Thread darum?

Es war eine explizite Bash-Frage:
latenite hat geschrieben:wie kann ich den namen einer Funktion in einer Variale speichern?

Code: Alles auswählen

#/bin/bash

function partitioning() {
local MYNAME=$0
echo $MYNAME
}

123456
Beiträge: 6126
Registriert: 08.03.2003 14:07:24

Re: functionsname in variable speichern

Beitrag von 123456 » 24.09.2009 11:06:22

yeti hat geschrieben:Über den Un-/Sinn dergleich erweiterter Shells wie BASH mag man streiten, aber sie existieren und haben einen beträchtlichen Marktanteil.
bei welchem Linux wird denn per default nicht die bash installiert?

yeti

Re: functionsname in variable speichern

Beitrag von yeti » 24.09.2009 11:40:28

ub13 hat geschrieben:
yeti hat geschrieben:Über den Un-/Sinn dergleich erweiterter Shells wie BASH mag man streiten, aber sie existieren und haben einen beträchtlichen Marktanteil.
bei welchem Linux wird denn per default nicht die bash installiert?
DD-WRT zum Beispiel...
...und sicher noch unzig Andere...

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Re: functionsname in variable speichern

Beitrag von latenite » 25.09.2009 20:46:28

Danke
ich habs jetzt auch mit ner 2ten variable gemacht (damit's auch mit dem "Nachbarn" klappt)

:)

Antworten