Мой первый вопрос о SO, поэтому извиняюсь, если ничего не делать правильно!Cd in a Bash FUNCTION
В интернете есть много вопросов об использовании cd внутри скрипта, но моя проблема заключается в использовании cd внутри функции bash, которую я установил в свой .bashrc
. Его задача - найти файл и перейти в рабочий каталог файла. В случае обнаружения нескольких файлов, я просто перехожу к первому. Вот оно:
fcd() {
cd $PWD
if [ -z "$1" ]; then
echo 'Specify a file name to find'
else
found_dir=$(find . -name $1 -type f -printf \"%h/\" -quit)
echo $found_dir
if [ -z "$found_dir" ]; then
echo "No file found. Directory was not changed"
else
cd $found_dir
fi
fi
}
Однако, когда я использую его, каталог найден, но при попытке cd $found_dir
результатов в сообщении:
cd: (directory_here): No such file or directory
Я исключил возможность путь ошибиться - копируя вывод echo $found_dir
и вставляя его перед cd
, каталог с успехом изменен. Есть идеи?
Спасибо,
Якуб
О да, cd $ PWD была моей глупой попыткой отладки. Ваше решение сработало, вы, ребята, самые лучшие! –