[Erledigt] Komplizierter Alias

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
Inkodiktus
Beiträge: 702
Registriert: 15.08.2013 01:15:35
Lizenz eigener Beiträge: GNU General Public License
Wohnort: » host@user╺─╸[~]

[Erledigt] Komplizierter Alias

Beitrag von Inkodiktus » 11.10.2013 15:36:05

Hallo!
Ich habe schon vieles versucht und im inet geguckt, aber ich werd nicht schlau draus.
Wie kann ich diesen Befehl in ein Alias nehmen, das auch funktioniert?

Code: Alles auswählen

scrot Bildschirmfoto-42.png  -e 'gimp $f' 
Diese einfachen Quote sind mein Problem.
Vielen Dank !
Gruß
Zuletzt geändert von Inkodiktus am 27.04.2014 04:34:53, insgesamt 1-mal geändert.
Meine Sprachkenntnisse: nur deutsch
Mein Laptop: http://www.asus.com/Notebooks_Ultrabook ... ifications
Mein Debian: Stable + OpenBox
Mein Editor: Emacs
Meine Devise: Frei bleiben - so lange wie es geht : -)

niesommer
Beiträge: 2493
Registriert: 01.10.2006 13:19:37
Lizenz eigener Beiträge: GNU General Public License

Re: Komplizierter Alias

Beitrag von niesommer » 11.10.2013 16:38:07

Hallo,
Probiere das mal:

Code: Alles auswählen

alias rst='scrot Bildschirmfoto-42.png  &&  gimp Bildschirmfoto-42.png'
Das sollte eigentlich das machen was du möchtest.
Gruß niesommer
Gruß niesommer

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

Re: Komplizierter Alias

Beitrag von rendegast » 11.10.2013 21:27:12

shell-functions dürfen Parameter

Code: Alles auswählen

$ rst () { echo scrot $1 -e "'gimp $1'" ; }

$ rst aaaaa
scrot aaaaa -e 'gimp aaaaa'
Dann noch das echo weglassen und $1 sinnvoll quoten.
Alles was shell kann, darf auch gerne in die Funktion reingepackt werden, Bsp. die /etc/bash_completion.d/*.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
Inkodiktus
Beiträge: 702
Registriert: 15.08.2013 01:15:35
Lizenz eigener Beiträge: GNU General Public License
Wohnort: » host@user╺─╸[~]

Re: Komplizierter Alias

Beitrag von Inkodiktus » 12.10.2013 18:21:32

rendegast hat geschrieben:shell-functions dürfen Parameter

Code: Alles auswählen

$ rst () { echo scrot $1 -e "'gimp $1'" ; }

$ rst aaaaa
scrot aaaaa -e 'gimp aaaaa'
Dann noch das echo weglassen und $1 sinnvoll quoten.
Alles was shell kann, darf auch gerne in die Funktion reingepackt werden, Bsp. die /etc/bash_completion.d/*.
Das musst du jetzt aber für Idioten übersetzen, weil mir das nach chinesisch aussieht :(
ausserdem seh ich da kein alias

@niesommer:
danke, daran habe ich ja nicht gedacht :D
Meine Sprachkenntnisse: nur deutsch
Mein Laptop: http://www.asus.com/Notebooks_Ultrabook ... ifications
Mein Debian: Stable + OpenBox
Mein Editor: Emacs
Meine Devise: Frei bleiben - so lange wie es geht : -)

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

Re: Komplizierter Alias

Beitrag von rendegast » 13.10.2013 07:30:40

ausserdem seh ich da kein alias
'rst' ist der "Alias" für die Befehlsfolge 'echo scrot $1 -e "'gimp $1'" '.
In erster Zeile definiere ich, in zweiter Zeile rufe ich mit Parameter 'aaaaa' auf.
Ergebnis der echo-Ausgabe darunter in dritter Zeile.
Bei Wegfall des echo sollten stattdessen 'scrot' / 'gimp' ausgeführt werden.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
Inkodiktus
Beiträge: 702
Registriert: 15.08.2013 01:15:35
Lizenz eigener Beiträge: GNU General Public License
Wohnort: » host@user╺─╸[~]

Re: Komplizierter Alias

Beitrag von Inkodiktus » 13.10.2013 19:27:38

rendegast hat geschrieben:
ausserdem seh ich da kein alias
'rst' ist der "Alias" für die Befehlsfolge 'echo scrot $1 -e "'gimp $1'" '.
In erster Zeile definiere ich, in zweiter Zeile rufe ich mit Parameter 'aaaaa' auf.
Ergebnis der echo-Ausgabe darunter in dritter Zeile.
Bei Wegfall des echo sollten stattdessen 'scrot' / 'gimp' ausgeführt werden.

ich habe immer noch keine Ahnung wie ich das in ein alias machen soll.
Ja bitte erst umständlich machen, dann umständlich erklären und wenn man 10 Posts geschrieben hat, erst dann weisst man was der typ eigentlich meinte
das ist wohl deine Devise? lass die Anfänger verarschen und blöd dastehen? und vielleicht irgendwann wirst du dann so gnädig sein und ihm erklären was du eigentlich von dir gibts.
wenn du nur angeben willst, dann bist du bei mir an der falschen Adresse. so eine Hilfe brauch ich und will ich nicht, ich will klare Antworten und kein neues tut wie man bash programmiert.
also entweder sagst du mir gleich wie ich das in ein Alias reinkriegen kann oder du sparst dir deine Angeberei.
Außerdem was hast du an meiner Frage oben nicht verstanden?
Meine Sprachkenntnisse: nur deutsch
Mein Laptop: http://www.asus.com/Notebooks_Ultrabook ... ifications
Mein Debian: Stable + OpenBox
Mein Editor: Emacs
Meine Devise: Frei bleiben - so lange wie es geht : -)

Benutzeravatar
4A4B
Beiträge: 926
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: Komplizierter Alias

Beitrag von 4A4B » 13.10.2013 19:47:19

ich habe immer noch keine Ahnung wie ich das in ein alias machen soll.
Du kannst anstelle eines Alias' eine Funktion definieren - das hat den gleichen Effekt, hat aber den Vorteil, dass man Funktionen flexibler definieren kann als Aliase

Also diese Funktionsdefinition von rendegast z.B. in deine .bash_aliases eintragen:

Code: Alles auswählen

rst () { scrot $1 -e "'gimp $1'" ; }
Und dann so (nach Neustart eines Terminals) aufrufen:

Code: Alles auswählen

rst Bildschirmfoto-42.png
Das "echo" in rendegasts Beispielen diente nur dazu, zu zeigen, dass die Parameter richtig übergeben werden.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Komplizierter Alias

Beitrag von Cae » 13.10.2013 22:20:12

Mal einen simplen Vergleich, der das hoffentlich deutlicher macht:

Code: Alles auswählen

$ alias foo=date
$ type foo
foo is an alias for date
$ foo
Sun Oct 13 22:15:07 CEST 2013
$ unalias foo
$ foo() { date; }
$ type foo
foo is a shell function
$ foo
Sun Oct 13 22:15:30 CEST 2013
$ unset -f foo
$ 
Man erkennt, dass sich der alias und die function gleichartig aufrufen lassen.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
Inkodiktus
Beiträge: 702
Registriert: 15.08.2013 01:15:35
Lizenz eigener Beiträge: GNU General Public License
Wohnort: » host@user╺─╸[~]

Re: Komplizierter Alias

Beitrag von Inkodiktus » 30.10.2013 15:57:35

Da mir wohl immer noch nicht geholfen wurde und ich hier immer noch wie ein Idiot dastehe, deshalb antworte ich erst jetzt.

ich bekomme das:

Code: Alles auswählen

giblib error: Saving to file tesss failed
Ich habe das in .bash_aliases eingegeben:
rst () { echo scrot $1 -e "'gimp $1'" ; }
So wie ich das sehe, kann er aus irgendwelchen Gründen es nicht speichern :cry:

Kann mir nun jemand endgültig helfen?
Meine Sprachkenntnisse: nur deutsch
Mein Laptop: http://www.asus.com/Notebooks_Ultrabook ... ifications
Mein Debian: Stable + OpenBox
Mein Editor: Emacs
Meine Devise: Frei bleiben - so lange wie es geht : -)

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

Re: Komplizierter Alias

Beitrag von rendegast » 30.10.2013 19:10:59

giblib error: Saving to file tesss failed
Ich habe das in .bash_aliases eingegeben:
rst () { echo scrot $1 -e "'gimp $1'" ; }
Sage ich erstmal, das hat so nichts miteinander zu tun,
denn die Funktion, wenn wirklich so definiert,
macht bei Verwendung per 'rst bla' nichts weiter als Ausgabe eines Textes:
scrot bla -e 'gimp bla'
Oben wurde schon darauf hingewiesen,
das 'echo' in der Funktion dient zu Anschauungs-/Testzwecken.
Soll 'scrot .....' im Rahmen der Funktion ausgeführt werden, so ist das 'echo' natürlich zu entfernen.

Das hätte auch nichts mit alias<->function zu tun.
Ein
alias echobla='echo befehl'
würde nichts anderes tun, als "befehl" auszugeben.

Code: Alles auswählen

# Definieren:
$ rst () { echo bla ; }

# Ausgabe der definierten Funktion(en)
$ declare -f  [rst]
......
rst () 
{ 
    echo bla
}
(auch 'man bash', unter FUNCTIONS und BUILTIN COMMANDS)



-----------------------------------------
Saving to file tesss failed
Wird vielleicht versucht, an einem Ort ohne Schreibrecht zu arbeiten?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
Inkodiktus
Beiträge: 702
Registriert: 15.08.2013 01:15:35
Lizenz eigener Beiträge: GNU General Public License
Wohnort: » host@user╺─╸[~]

Re: Komplizierter Alias

Beitrag von Inkodiktus » 31.10.2013 00:04:34

Du bist doch, der sich total auskennt, mir das schreibt was ich nicht wissen will und das was ich wissen will mir einfach nicht beantwortet.

Ich habe eine Regel für dich:
Wenn Du was tust, dann mach es richtig und beende es.

Ich will auch jetzt nicht Bash lernen, ich möchte einfach eine Antwort haben, ist das so schwer für dich? Ich denke nicht.
Du hast mir auch bei einem anderen Problem geholfen aber auch nachdem wir zig Posts geschrieben haben und irgendwann wusste ich selber nicht mehr was ich wollte.
Ich glaub das ist deine Taktik hier, Leute so verwirren, die dann keine Lust mehr auf Linux haben.
Meine Sprachkenntnisse: nur deutsch
Mein Laptop: http://www.asus.com/Notebooks_Ultrabook ... ifications
Mein Debian: Stable + OpenBox
Mein Editor: Emacs
Meine Devise: Frei bleiben - so lange wie es geht : -)

Benutzeravatar
habakug
Moderator
Beiträge: 4313
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: Komplizierter Alias

Beitrag von habakug » 31.10.2013 00:51:19

Hallo!

Ich habe hier kein "gimp" nur "gwenview", aber das kann man austauschen. Das Alias erzeugst du so:

Code: Alles auswählen

$ alias snap="scrot $f -e 'gwenview \$f'"
und schaust es dir an:

Code: Alles auswählen

$ alias
[...]
alias snap='scrot  -e '\''gwenview $f'\'''
Jetzt kannst du es aufrufen:

Code: Alles auswählen

$ snap

Gruss, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

soundrolf
Beiträge: 265
Registriert: 21.07.2009 13:50:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Köln

Re: Komplizierter Alias

Beitrag von soundrolf » 31.10.2013 10:54:32

Diese nachfolgenden Zeilen in der .bashrc Eintragen.

----------------------------------------------------------snipp-----------------------------------------------------

##################################################
# Shot - takes a screenshot of your current #
# window #
##################################################

function shot()
{
import -frame -strip -quality 75 "$HOME/$(date +%s).png"
}

-----------------------------------------------------------snapp------------------------------------------------------

Anschließend kannst du in der Shell den Befehl shot Eingeben. Der Mauszeiger wird dann zu einem Kreuz. Mit diesem Kreuz klickst du in das Fenster oder den Desktop um einen Screenshot des Fensters oder Desktops zu machen. Im $HOME Verzeichnis liegt dann der Screenshot.

LG

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Komplizierter Alias

Beitrag von Cae » 01.11.2013 00:25:13

Inkodiktus hat geschrieben:ich möchte einfach eine Antwort haben
Ich glaube, du hast da ein Verstaendnisproblem. Das, was rendegast oben schrieb, ist korrekt und versucht, die aufgekommenen Fragen zu beantworten. Dies liesse sich durch erneutes Durchlesen bestaetigen, was nun so aufwaendig nicht ist. Allerdings scheint dir das zu viel Aufwand zu sein. Aus demselben Grund stochern wir seit geraumer Zeit im Nebel, was du da eigentlich treibst. Beispielsweise kann es nicht sein, dass das Ausfuehren eines "echo.."-Aliases/Funktion die oben genannte Fehlermeldung ausgibt. Es geht keinesweges darum,
Inkodiktus hat geschrieben:Leute so verwirren, die dann keine Lust mehr auf Linux haben
-- an dieser Stelle sind die Details einfach notwendig, das laesst sich nicht in drei Worten beschreiben. Andernfalls gaebe es Doppeldeutigkeiten; damit waere keinem geholfen.

rendegast versucht dir bei der Loesung des Problems zu helfen, da solltest du dankbar sein. Forderungen zu stellen, in welcher Form denn bitteschoen geholfen werden muss, empfaende ich persoenlich als unverschaemt. Du solltest selbst mindestens soviel Zeit/Aufwand investieren, wie es hier die freiwilligen Helfer tun.

Um nochmal auf das eigentliche Thema zurueckzukommen, was passiert, wenn du die oben genannte Funktion definierst und ausfuehrst?

Code: Alles auswählen

$ rst () { echo scrot $1 -e "'gimp $1'" ; }
$ rst /tmp/test.png
Bitte mit vollstaendiger Kommandozeile, allen Ausgaben und so weiter.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
Inkodiktus
Beiträge: 702
Registriert: 15.08.2013 01:15:35
Lizenz eigener Beiträge: GNU General Public License
Wohnort: » host@user╺─╸[~]

Re: Komplizierter Alias

Beitrag von Inkodiktus » 05.11.2013 02:16:49

@habakug und soundrolf : vielen vielen Dank! Ihr seid meine Rettung! :hail: :THX:

@Cae:
Hier geht es nicht, ob ich undankbar bin. Ich bin in keinem Fall undankbar, im Gegenteil, ich bin immer dankbar, wenn mir jemand wirklich hilft.
Ich glaube, du hast da ein Verstaendnisproblem. Das, was rendegast oben schrieb, ist korrekt und versucht, die aufgekommenen Fragen zu beantworten. Dies liesse sich durch erneutes Durchlesen bestaetigen, was nun so aufwaendig nicht ist. Allerdings scheint dir das zu viel Aufwand zu sein.
Bitte jetzt keine flamewar oder wie man das so nennt.
Ich habe dazu alles geschrieben, was ich noch schreiben könnte. Und mich wiederholen tue ich ungern.
an dieser Stelle sind die Details einfach notwendig, das laesst sich nicht in drei Worten beschreiben. Andernfalls gaebe es Doppeldeutigkeiten; damit waere keinem geholfen.
Das ist ja merkwürdig, die zwei oben genannten Leute konnten es in einem Post beantworten und er nicht? Denk mal darüber nach.

Und wenn irgendwelche Probleme gibt, dann denkst Du nicht, dass ich sie gleich aufzeigen würde und danach fragen würde?
Und bitte nicht mehr darüber viel diskutieren, ich seh auch keinen wirklichen Sinn darin. Man kann ein Problem auf zwei Arten lösen und rendegasts Motto ist - mach es kompliziert.
Wenn ich mich in einer Sache gut auskenne, dann pralle ich nicht mit meiner totalen Kenntnis darüber und erzähl ihm erst mal die Hintergrundinformationen, die er gar nicht gewünscht hat.
Ich hoffe, das das Thema nun vorbei ist, wozu streiten? Lass und Freunde sein, ich will doch nichts böses, mich ärgert nur so etwas immer wieder.

Ausgabe von rst /tmp/test.png

Code: Alles auswählen

scrot /tmp/test.png -e 'gimp /tmp/test.png'
Grüße
Meine Sprachkenntnisse: nur deutsch
Mein Laptop: http://www.asus.com/Notebooks_Ultrabook ... ifications
Mein Debian: Stable + OpenBox
Mein Editor: Emacs
Meine Devise: Frei bleiben - so lange wie es geht : -)

Antworten