Очевидный ответ - переменные , те символические вещи в оболочке, которые обозначают другие вещи, аналогичные символическим ссылкам в файловой системе.
path/to/project $ project=$PWD
path/to/project $ cd $elsewhere # Previously created
path/to/elsewhere $ cd $project
path/to/project $ logout # Variables gone, as required
В любой приличной оболочке вы получаете завершение Tab для имен переменных, что еще более помогает.
Удалить кавычки из регулярного выражения:
[[ ! "${dirPath}" =~ ^/[A-Za-z0-9/_-]+$ ]]
Цитирование регулярного выражения приводит к сопоставлению строк, начиная с Bash 3.2 .
Сравните этот вопрос на Stackoverflow .
Note: while this fixes your script, it does not properly check if the path is a correct directory path. Refer to @Kusalanandas answer how to do a proper check.
чтобы проверить, не нужно ли регулярное выражение для его файла или каталога -используйте:
if [ -d "${testpath}" ] ; then
echo "$testpath is a directory";