Which works for bash, but not for zsh as you can see:
❯ bash
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
bash-3.2$ mpm --version
bash: mpm: command not found
bash-3.2$ python3 -m pip install --upgrade meta-package-manager>=4.2.0
bash-3.2$ mpm --version
mpm, version 4.12.1
❯ zsh --version
zsh 5.8.1 (arm-apple-darwin21.3.0)
❯ python3 -m pip install --upgrade meta-package-manager>=4.2.0
zsh: 4.2.0 not found
The trick is to quote the last parameter or escape the angle-bracket within:
❯ 'python3' -m pip install --upgrade \\\\\"meta-package-manager>=4.2.0\\\\\"
zsh: 4.2.0\\" not found
❌ Tests #8 and #9 runs:
❯ 'python3' -m pip install --upgrade meta-package-manager\\\\>=4.2.0
zsh: 4.2.0 not found
Looking at these examples, it seems there is something inconsistent in the way xbar is parsing parameters, handling outer quotes and/or over-escaping special characters.
Here is my environment:
xbar 2.1.7-beta
macOS Monterey 12.3.1
zsh 5.8.1 (arm-apple-darwin21.3.0)
GNU bash, version 3.2.57(1)-release (arm64-apple-darwin21)
In the
meta_package_manger.7h.py
plugin I'm maintaining for the last 5 years, I'm trying to execute apython3 -m pip
command.Which works for
bash
, but not forzsh
as you can see:The trick is to quote the last parameter or escape the angle-bracket within:
These examples have the advantage of working for both
bash
andzsh
.Now I'd like to transpose that workaround in xbar. But no amount of tweaking let me have one of this CLI executed as-is.
Here is a Python-based xbar plugin exploring the possibilities:
On execution, it returns:
Which renders into xbar as:
But none of these 9 tests properly executes my command.
❌ Tests
#1
,#2
and#3
runs:❌ Tests
#4
runs:❌ Tests
#5
and#7
runs:❌ Tests
#6
runs:❌ Tests
#8
and#9
runs:Looking at these examples, it seems there is something inconsistent in the way xbar is parsing parameters, handling outer quotes and/or over-escaping special characters.
Here is my environment:
For the record, I tested the same test suite on SwiftBar but the results are completely different.