Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Alias help




On 27/04/2021 00:15, Eric Cook wrote:
On 4/26/21 6:55 PM, Hoji, Aki wrote:
alias pu ="pip3 list -o | sed "1,2 d" |cut -d ' ' -f1 |  xargs -n1 pip3 install -U”

As a shell function:
pu() { ~
  pip3 list -o   |
  sed "1,2 d"    |
  cut -d ' ' -f1 |
  xargs -n1 pip3 install -U
}

While not to the degree of say python, whitespace matters often in shell;
You have an extra space after the name of the alias pu, so the =word triggered a different feature of zsh that expands the path to a command. in this case "pip3 list -o | sed 1,2" once you remove the space you still have the problem of not quoting correctly.

alias pu='pip3 list -o | sed "1,2 d" |cut -d '\'' '\'' -f1 | xargs -n1 pip3 install -U'

Is how to quote that command properly, which is less readable than a function is in my opinion.

thanks for this explanation Eric (I've been having my own battles with shell white space recently)

When you are desperate to get something working not noticing a little thing like the extra space in >>>>alias pu ="pip3<<<

Pity we don't have an online script tester for zsh (many for bash)

I prefer an Alias to a Function where possible because it's easy to tab expand an alias and then if required tweak it






Messages sorted by: Reverse Date, Date, Thread, Author