Постановка проблемы: создайте псевдоним cdff, который найдет первое вхождение каталога (заданного в качестве параметра) и назначит его переменной FILEPATH.
Псевдоним cdf = 'cd $ FILEPATH' должен перейти в этот каталог.
Например, команда 'cdff TestDir' должна установить FILEPATH = Dir1 / Dir2 / TestDir
Так что, если я хочу перейти к TestDir, я просто запускаю 'cdff TestDir', а затем 'cdf' и ожидаю изменить каталог на Dir1 / Dir2 / TestDir, так как я экспортирую переменную FILEPATH
В .bashrc я создаю этот псевдоним,
alias cdff = '. / Cdfindfirstoccurance.sh'
псевдоним cdf = 'cd $ FILEPATH'
cdfindfirstoccurance.sh
export FILEPATH = `найти. -name " $ 1 " -print -quit` # Установить переменную FILEPATH для последующего использования псевдонимом cdf
echo "FILEPATH: $ {FILEPATH}"
# cd $ {FILEPATH} # Я понимаю, почему это не сработает.
Поскольку я экспортирую переменную FILEPATH при выполнении cdff, я ожидал, что псевдоним cdf просто сработает.
После выполнения cdff при выводе «echo $ FILEPATH» он просто пуст.
EDIT:
Лучший способ решить это очень приветствуется.
Прямо сейчас единственный способ - использовать команду find, а затем скопировать вывод с помощью мыши и передать его cd.
Я стараюсь не использовать мышь и тоже не хочу набирать весь путь.
EDIT2:
Как уже упоминалось в комментариях, изменение псевдонима с
alias cdff = '. / Cdfindfirstoccurance.sh'
до
alias cdff = 'source cdfindfirstoccurance.sh'
работал просто отлично.