Alias ​​en cygwin bash no parece ejecutarse en el order correcto

Intento crear un alias para usar en mi caparazón Cygwin para determinar si el directory administrado por Mercurial en el que me encuentro actualmente tiene cambios sobresalientes. El command "hg st-m" enumera todos los files modificados. Lamentablemente, no establece un valor de salida en function de si hay cambios o no. Así que he intentado capturar la salida y ver si no está vacía, conectarla con "wc -l" y verificar si eso es -gt 0, pero parece que tengo un problema mayor en el sentido de que las líneas claramente no se ejecutan en el order en que lo haría esperar que lo hagan.

Aquí es a lo que me he limitado a:

alias hgfoo=' pwd echo L1 localChanges="NOT SET YET" hasLocal="NOT SET YET" echo "Before: A${localChanges}ZA${hasLocal}Z" localChanges=`hg st -m` echo L2 echo "localChanges: A${localChanges}Z" echo L3 if [ -n "${localChanges}" ] ; then echo L3 hasLocal="YES" else echo L4 hasLocal="NO" fi echo L5 echo "RESULTS: A${hasLocal}Z" echo L6 ' 

Puse en las declaraciones de eco "Ln" para la debugging. Cuando lo ejecuto escribiendo "hgfoo" en un directory que tiene cambios, veo el siguiente resultado:

 /d/hg/succession > hgfoo /d/hg/succession L1 Before: ANOT SET YETZ ANOT SET YETZ L2 localChanges: AL2 localChanges: ANOT SET YETZ L3 L3 L5 RESULTS: AYESZ L6 M succession-lib\.actionScriptProperties M succession-lib\src\main\flex\com\workscape\SuccessionConstants.as M succession-lib\src\main\flex\com\workscape\succession\nomination\tabmodules\BenchStrengthTab.mxml M succession-lib\src\main\flex\com\workscape\succession\nomination\tabmodules\BenchStrengthTabMediator.as M succession-lib\src\main\flex\com\workscape\succession\puremvc\controller\StartupSuccession.asZ L3 L3 L5 RESULTS: AYESZ L6 

Cuando lo ejecuto en un directory sin cambios, veo:

 /d/hg/employee-profile > hgfoo /d/hg/employee-profile L1 Before: ANOT SET YETZ ANOT SET YETZ L2 localChanges: AL2 localChanges: ANOT SET YETZ L3 L3 L5 RESULTS: AYESZ L6Z L3 L3 L5 RESULTS: AYESZ L6 

Incluso olvidando el hecho de que la comparación no funciona bien, en ambos casos parece que se está ejecutando líneas varias veces y en el lugar equivocado. Esto me está volviendo loca.

¿Alguna pista? Gracias.