Comment tester si une chaîne commence par un autre en bash?

Très similaire, mais pas en double : https://stackoverflow.com/a/2172367/57883

Je suis dans Git Bash 3.1 (au moins, c'est ce qui arrive dans l'invite quand j'type bash à l'intérieur de git bash.

et $ test [["DEV-0" == D*]] || echo 'fail' imprime échouer.

if [['DEV-0-1' == DEV* ]]; then echo "yes"; dit [[DEV-0-1: command not found
Je suis en train de tester, si git branch renvoie quelque chose qui commence avec DEV. mais je n'arrive pas à appliquer la réponse. est-ce parce que toutes mes tentatives sont à l'aide d'un littéral de chaîne sur la gauche, au lieu de la valeur d'une variable?

Je l'ai aussi essayé sur ideone http://ideone.com/3IyEND

et pas de chance.
C'est à ~14 ans que j'ai été bon avec une invite de linux.

Ce qui me manque pour une chaîne de caractères commence par tester en bash?

Vous avez des erreurs de syntaxe vous avez besoin d'espaces sur les deux côtés de [[ et ]] ;
if [['DEV-0-1' == DEV* ]] ; then echo "yes"; dit aussi [[DEV-0-1: command not found
ah! if [[ 'DEV-0-1' == DEV* ]] ; then echo "yes"; semble fonctionner.
quel est le problème avec le test || syntaxe? même chose?
[[ est un bash-builtin test de syntaxe, et test ou [ est un UNIX traditionnel de commande (ce qui est important-vous toujours besoin d'un espace entre le nom d'une commande et ses arguments, après tout). Vous utilisez l'un ou l'autre, et d'essayer de les combiner comme dans test [[ ... n'a pas de sens.

OriginalL'auteur Maslow | 2013-03-14