1 votos

¿Cómo puedo hacer que el bash de OS X expanda $PWD para que distinga entre mayúsculas y minúsculas?

Estoy ejecutando OS X 10.8 en un MBP 2011. Utilizo algunos bash-scripts para tareas como copias de seguridad de servidores remotos. Uno de los scripts contiene este fragmento:

#!/bin/bash
if [ "$PWD" != /Users/myuser/Documents/Backup ]
then
    echo "Wrong path: $PWD"
    exit 0
fi

Cuando ejecuto este script en /Users/myuser/Documents/Backup (nótese la B mayúscula), obtengo esta respuesta:

Wrong path: /Users/myuser/Documents/backup

Por alguna razón, el $PWD se expande a un nombre en minúsculas. ¿Cómo puedo aliviar esto? Mi sistema de archivos no distingue entre mayúsculas y minúsculas: tanto cd Backup y cd backup trabajo.

3voto

shsteimer Puntos 8749

Realmente tienes dos opciones: convertir $PWD a un caso consistente antes de compararlo con su otra cadena (que también debería tener un caso consistente). O deje de hacer comparaciones que distingan entre mayúsculas y minúsculas.

Convertirlo a minúsculas antes de comparar:

#!/bin/bash
if [ `echo $PWD | tr [:upper:] [:lower:]` != /users/myuser/documents/backup ]
then
    echo "Wrong path: $PWD"
    exit 0
fi

Eliminación de las comparaciones entre mayúsculas y minúsculas:

#!/bin/bash
shopt -s nocasematch
if [[ "$PWD" != /Users/myuser/Documents/Backup ]]
then
    echo "Wrong path: $PWD"
    exit 0
fi

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X