2016-11-01 5 views
1
n='!' && [ -n ${n} ] && echo "n=$n" 

erzeugt die folgende MeldungShell: zu viele Argumente durch '!'

[: too many arguments 

Warum?

EDIT:

Ich verwende zsh

➔ echo $ZSH_VERSION 
5.0.7 

(mit oh-my-zsh)

+0

In zsh 5.0.8, 'n = '!' && [-n $ {n}] && echo "n = $ n" 'funktioniert gut und erzeugt' n =! ' –

+0

Das Upgrade auf zsh 5.2 hat das Problem für mich gelöst. – Tengis

+0

Ah, habe das gerade gesehen. Nicht sicher, ob das Problem mit zsh 5.0.7 oder mit oh-my-zsh und 5.0.7 ist. –

Antwort

0

scheint gut zu funktionieren für mich:

☻ n='!' && [ -n ${n} ] && echo "n=$n" 
n=! 

~ 
☻ echo $ZSH_VERSION 
5.0.8 

(Mit prezto)

Dies könnte mit der zsh-Version selbst zusammenhängen und ist daher nützlich als eine "Antwort".

+0

Sorry, das ist keine Antwort. Höchstens ein Kommentar. Außerdem hilft es mir nicht, herauszufinden, was mein Problem ist. – Tengis

+0

Ich postete dies als eine "Antwort", da eine neuere Version von zsh dieses Problem nicht hatte, bevor ich Zeit verbrachte herauszufinden, was das Problem ist, ich hatte gehofft, Sie könnten entweder versuchen, zsh-Version zu aktualisieren ODER oh-my-zsh irgendwelche entfernen benutzerdefinierte Änderungen von '.zshrc' –