2016-06-16 11 views
0

Warum funktioniert der Alias ​​nicht, aber funktioniert die Funktion in meinem .bash_profile?Eingaben für Alias ​​vs. Funktionen im Shell-Skript

-Code innerhalb Bash_profile (unten)

alias pxsz='sips -g pixelWidth $1 && sips -g pixelHeight $1' 

pxlsz() { 
    sips -g pixelWidth $1 && sips -g pixelHeight $1 
} 

Wenn ich den Alias ​​mit

wie
alias pxsz="echo '$1 1' && echo '$1 2' " 

gibt

$pxsz tag_struct.jpg 
1 
2 tag_struct.jpg 

Antwort

0

Sie können nicht eine Variable innerhalb eines Alias ​​getestet Dies. Hier rufen Sie einfach an die $1, die zuvor in der Schale definiert werden muß, und es ist das vorherige erste Argument früheren Befehls:

$ set TEST 
$ echo $1 
TEST 
$ alias pxsz="echo '$1 1' && echo '$1 2' " 
$ pxsz 
TEST 1 
TEST 2 

Die Funktion, wie Sie haben, ist die Art und Weise zu gehen.