Автозаполнение команды из определенной папки

Я сделал /etc/os-release. Вот результат с расширенной информацией:

NAME="Linux Mint"
VERSION="18.3 (Sylvia)"
ID=linuxmint
ID_LIKE=ubuntu
PRETTY_NAME="Linux Mint 18.3"
VERSION_ID="18.3"
HOME_URL="http://www.linuxmint.com/"
SUPPORT_URL="http://forums.linuxmint.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/linuxmint/"
VERSION_CODENAME=sylvia
UBUNTU_CODENAME=xenial
1
20.01.2021, 23:36
1 ответ

С помощью completeвы можете добиться желаемого:


Добавить в.bashrc:

if [[ -f /path/to/your/script ]]; then
 . /path/to/your/script
fi

Затем запустите из своего домашнего каталога:

..bashrc

Создайте скрипт /path/to/your/script, сделайте его исполняемым chmod +x /path/to/your/script. Поместите этот контент:

#!/bin/bash

# check that the function doesn't already exist
[[ ! -z "$(compgen -c | grep "^go$")" ]] \
  && echo "The command 'go' already exists." \
  && exit

go() {
 cd /your/dir/"$1"
}

cd_my_dir() {
 cd /your/dir
}

complete -d -F cd_my_dir go

Введитеgoи нажмите Tab дважды

go <Tab> <Tab>

Появится список возможных каталогов:

foo/
bar/

Начните вводить начало имени, оно будет автоматически -завершено:

go f <Tab> → go foo/
0
18.03.2021, 22:35

Теги

Похожие вопросы