Kommando mit Variablen abkürzen?

motionmountain

Neues Mitglied
Thread Starter
Dabei seit
24.12.2004
Beiträge
10
Reaktionspunkte
0
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
 
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
 
wenn ich mich nicht irre
alias pp="ps2pdf filename.ps filename.pdf"
 
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
 
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
 
. . . und die passende Erklärung zu IceHouse' CodeSnippet findest du hier ;)


Gruß,

?=?
 
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
 
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
 
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
 
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
 
Danke an alle!

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

motionmountain
 
Zurück
Oben Unten