Как сделать удобный ввод пути до файла в своем Bash скрипте?
Подстановкой по TAB занимается не ваш скрипт, это делает bash. А если быть совсем точным - bash-completion. В нем описаны для разных программ допустимые аргументы и варианты подстановок. Вам стоит разобраться в правилах написания bash-completion расширения под ваш скрипт и распространять скрипт вместе с этим расширением.
добавить свой путь в  PATH
зы пропиши в башрс пару строк
ифы лишеие выкини, я просто скопировал кусок целиком
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; 
	then . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ];
	then . /etc/bash_completion
  fi
fi

if [ -x /usr/games/fortune ];
then fortune ru |lolcat -F 0.7 ;
fi

##  сперва будет искать man на русском, а если его нет, то на английском.
export MANOPT="-L ru"

## По умолчанию, каждый экземпляр bash переписывает историю. То есть, если вы запустите два терминала, что-то в них сделаете, а потом закроете, то история сохранится только от последнего закрытого. (Она затрёт историю первого закрытого.) Это очень неудобно и легко исправляется вот такой командой:
shopt -s histappend

##[ -f ~/.fzf.bash ] && . ~/.fzf.bash


if [ -s ~/.Xmodmap ];
then xmodmap ~/.Xmodmap
fi

## для Wine
export MESA_GL_VERSION_OVERRIDE=4.5