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

2

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 de código:

#!/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 (note la mayúscula B), obtengo esta respuesta:

Wrong path: /Users/myuser/Documents/backup

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

    
pregunta Arne 18.07.2013 - 20:47

1 respuesta

3

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

Convertirlo en 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

Eliminando comparaciones sensibles a mayúsculas y minúsculas:

#!/bin/bash
shopt -s nocasematch
if [[ "$PWD" != /Users/myuser/Documents/Backup ]]
then
    echo "Wrong path: $PWD"
    exit 0
fi
    
respondido por el Ian C. 18.07.2013 - 21:02

Lea otras preguntas en las etiquetas