Interprétation (point) dans les vérifications de fichiers dans les scripts shell bash

J’ai une fonction que j’appelle pour vérifier l’existence de fichiers (qui a été grandement améliorée avec l’aide d’utilisateurs comme vous), et la fonction tombe en panne si l’utilisateur utilise un fichier. (point) pour représenter le répertoire de travail actuel comme argument complet.

Il y a déjà un handle pour interpréter ~ (tilde) dans le chemin, alors j’ai pensé que cela ne devrait pas être difficile à gérer. (point). Voici la fonction actuelle:

1 exist.fn() { 2 local dir="$1" 3 while [ ! -d "$dir" ]; do 4 echo -e "\033[1m\"$dir\"\033[0m does not exist." >&2 5 read -u2 -e -p "Enter a valid path: " dir 6 dir="${dir/\~/$HOME}" 7 done 8 echo "$dir" 

En tout cas, je pensais que je pouvais faire un petit truc comme ça en haut, et cela résoudrait le problème:

  if [ "$dir" == '.' ]; then dir=$( pwd ) fi 

Mais pas de dés. Quelqu’un veut-il élaborer? Je suis toujours curieux de savoir pourquoi cette façon ne fonctionne pas. Toute entrée est appréciée.

[EDIT]: Ok, pour que la substitution sur la ligne 6 soit une opération de type Ssortingng. En regardant cela maintenant.