Попытка создать скрипт bash (для Mac), который создает папку, затем запускает в этой папке несколько скриптов. Я хочу указать абсолютный путь к папке и предложить пользователю подтвердить, прежде чем предпринимать какие-либо действия.
Сценарий принимает относительный путь в качестве аргумента. Как преобразовать в абсолютный путь перед созданием папки?
!/bin/bash
if [[ $# -eq 0 ]] ; then
echo 'Whoa! You dont want to do that! you need to tell me where to put it'
exit 0
fi
ORG_DIR=$(pwd)
#here I want to get path before making directory, I've only figured out how to do after.
mkdir ../$1
cd ../$1
NEW_DIR=$(pwd)
echo "Running scripts in"
echo $NEW_DIR
read -p "Are you sure? (y/n) " -n 1 -r
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
# run a bunch of scripts
fi
Как я могу получить абсолютный путь NEW_DIR, прежде чем сделать это?
Примечание: Платформа OSX, мне не нужно поддерживать другие варианты nix.
РЕДАКТИРОВАТЬ: сб, 29
Я осознал, что, стремясь урезать вопрос только до существенных деталей, я сильно урезал свои извинения.
Этот скрипт существует в (например, ради)
/Documents/git/ProjectGenerator
Я намерен сценарий для создания проекта (или любой путь введен)
/Documents/git/NewProject
Он запускает комбинацию сценариев npm и копирует файлы из
/Documents/git/ProjectGenerator
Остальная часть сценария теперь работает нормально, однако недавно я случайно нажал Enter на неправильном каталоге. Поскольку этот сценарий предназначен только для моего использования (а не для sudo), я пытаюсь добавить проверку работоспособности, а не проверку безопасности в начале сценария. Необходимо набрать Y и войти, посмотрев на каталог.
Я пытаюсь получить абсолютный путь, и то, что я получаю, это
/Documents/git/ProjectGenerator/../NewProject
Я пытаюсь заставить его повторить
/Documents/git/NewProject
до создания каталога. (иногда путь гораздо сложнее)
В узле у нас есть path.resolve(path)
В php или c его realpath(path)
Я не могу найти эквивалентную команду в OSX Bash, есть ли? или мне нужно разобрать строку?