Kommando mit Variablen abkürzen?

motionmountain

Neues Mitglied
Thread Starter
Registriert
24.12.2004
Beiträge
10
Statt die ganze Zeit
ps2pdf filename.ps filename.pdf
zu tippen, würde ich gerne
pp filename
tippen, und die definition von pp in .bash_profile speichern.

Wie siet so eine Definition in bash aus?
Oder wo kann man das in "man" heraussuchen?

Danke!

motionmountain
 

ratti

Aktives Mitglied
Registriert
09.05.2004
Beiträge
1.521
motionmountain schrieb:
Statt die ganze Zeit ps2pdf filename.ps filename.pdf
zu tippen, würde ich gerne pp filename tippen, und die definition von pp in .bash_profile speichern.

man bash
/alias

Gruß,
Ratti
 

uppercut

Mitglied
Registriert
07.08.2004
Beiträge
175
wenn ich mich nicht irre
alias pp="ps2pdf filename.ps filename.pdf"
 

ratti

Aktives Mitglied
Registriert
09.05.2004
Beiträge
1.521
uppercut schrieb:
wenn ich mich nicht irre
alias pp="ps2pdf filename.ps filename.pdf"

Glaube ich nicht - ausser, er will jedesmal AUSSCHLIESSLICH die Datei "filename.ps" konvertieren. :)

Eher
alias pp="ps2pdf"

Das ps-File wird weiterhin übergeben. Das pdf-File ist optional, wenn man es nicht angibt, wird aus banane-ps sowieso banane.pdf

Gruß, Ratti
 

IceHouse

Mitglied
Registriert
03.06.2002
Beiträge
691
motionmountain schrieb:
Statt die ganze Zeit
ps2pdf filename.ps filename.pdf
zu tippen, würde ich gerne
pp filename
tippen, und die definition von pp in .bash_profile speichern.

Code:
pp () { ps2pdf $1; }

Nun kannst du z.B. pp hirsebrei.ps eintippen und es sollte das passieren, was du erwartest.

Gruss von IceHouse
 

?=?

Mitglied
Registriert
09.02.2004
Beiträge
952
. . . und die passende Erklärung zu IceHouse' CodeSnippet findest du hier ;)


Gruß,

?=?
 

ratti

Aktives Mitglied
Registriert
09.05.2004
Beiträge
1.521
IceHouse schrieb:
Code:
pp () { ps2pdf $1; }

Nun kannst du z.B. pp hirsebrei.ps eintippen und es sollte das passieren, was du erwartest.

Viele Wege führen nach Rom.

Ich bilde mir allerdings ein, daß er mit meiner "alias"-Definition noch Parameter übergeben kann, z.B.

pp ‐sPAPERSIZE=a5 banane.ps

während diese Funktion die Parameter nicht weiterreicht?

Gruß, Ratti
 

ratti

Aktives Mitglied
Registriert
09.05.2004
Beiträge
1.521
IceHouse schrieb:
Code:
pp () { ps2pdf $1 $2; }

Ne, geht nicht:

> pp () { echo $1 $2; }


> pp 1
1
OK.

> pp 1 2
1 2
Auch OK.

> pp 1 2 3
1 2
Können wir gelten lassen, weil drei Parameter nicht im Definitionsbereich sind.

Aber:
ratti@ratti:~$ pp -n 1 2
1ratti@ratti:~$

$1 wird "-n", $2 wird "1", und die 2 wird verschluckt. Deswegen wird bei:

> pp () { ps2pdf $1 $2; }
> pp ‐sPAPERSIZE=a5 quelle.ps ziel.pdf

...einfach "quelle.pdf" in a5 erstellt statt "ziel.pdf". Mit zwei Optionen gibt es dann völlige Bruchlandung.

Wenn schon als Funktion, dann:
> pp () { ps2pdf $@; }


Gruß, Ratti
 

IceHouse

Mitglied
Registriert
03.06.2002
Beiträge
691
ratti schrieb:
> pp () { ps2pdf $1 $2; }
> pp ‐sPAPERSIZE=a5 quelle.ps ziel.pdf

...einfach "quelle.pdf" in a5 erstellt statt "ziel.pdf". Mit zwei Optionen gibt es dann völlige Bruchlandung.
Bei mir geht es. Ich habe nie etwas von der Angabe von ziel.pdf gesagt. Bei nichtangabe erstellt er aus dem Dokumentenname.ps ein dokumentenname.pdf.

Ich sehe da nicht wirklich ein Problem.

Gruss von IceHouse
 

ratti

Aktives Mitglied
Registriert
09.05.2004
Beiträge
1.521
IceHouse schrieb:
Bei mir geht es. Ich habe nie etwas von der Angabe von ziel.pdf gesagt. Bei nichtangabe erstellt er aus dem Dokumentenname.ps ein dokumentenname.pdf.

Ich sehe da nicht wirklich ein Problem.


Dann probier mal:

pp \
--ersterparameter \
--zweiterparameter \
--dritterparameter \
dokument.ps


Deine Version macht daraus:

pp \
--ersterparameter \
--zweiterparameter

Gruß, Ratti
 

motionmountain

Neues Mitglied
Thread Starter
Registriert
24.12.2004
Beiträge
10
Danke an alle!

pp () { ps2pdf13 $1.ps $1.pdf ; } ist genau richtig.

motionmountain
 
Oben