#!/bin/bash function _get_projects() { ( cd -- "${WORKSPACE_DIR}" && find . -mindepth 3 -maxdepth 3 -type d | sed 's|^\./||' ) } function _cdp() { if command -v fzf &>/dev/null; then echo "${WORKSPACE_DIR}/$(_get_projects | fzf --query "$*")" return fi readarray -t projects <<< "$(_get_projects)" local filtered_projects filtered_projects=() for project in "${projects[@]}"; do if [[ "${project}" == "$1"* ]]; then filtered_projects+=("${project}") fi done select project in "${filtered_projects[@]}"; do echo "${WORKSPACE_DIR}/${project}" break done } _cdp "$@"