Удобный способ перейти в часто используемый каталог? [Дубликат]

No creo que Bash admita condicionales en el aviso (como p. screenlo hace, IIRC ), pero podría usar la sustitución de comandos con \jpara agregarle algo de lógica.

anyjobs() { [[ "$1" != 0 ]] && echo "[ $1 bg job(s) ] "; }
PS1='$? $(anyjobs \j)\u@\h \w\$ '

Eso ejecuta un subshell, que involucra un fork()en Bash, pero no veo una forma de evitarlo.

En general, puede evitar la subcapa configurando una variable en PROMPT_COMMAND, pero no veo una forma simple de obtener la cantidad de trabajos allí.

0
16.06.2019, 19:16
2 ответа

По умолчанию cdпоиск относительно вашего рабочего каталога (, если вы укажете относительный путь, а не абсолютный путь ). Вы можете добавить в каталоги, в которых будет выполняться поиск совпадений, установив переменную окружения CDPATHв одном из ваших файлов инициализации оболочки. Это поддерживается по крайней мере в bashи ksh.

Со страницы руководстваbash:

CDPATH

The search path for the cd command. This is a colon-separated list of directories in which the shell looks for destination directories specified by the cd command. A sample value is ".:~:/usr".

Для вашего примера,если бы вы установили

export CDPATH=.:/mnt/c/Users/me/ho/hum

, тогда вы можете установить /mnt/c/Users/me/ho/hum/binв качестве рабочего каталога, просто набрав

cd bin

Обратите внимание, что если ваш предполагаемый пункт назначения имеет обычное имя (bin), порядок записей в вашей переменной CDPATHбудет важен. Если бы ваш рабочий каталог был установлен /usr/localи CDPATHв соответствии с предыдущим абзацем, тогда cd binпривел бы вас к /usr/local/bin, а не /mnt/c/Users/me/ho/hum/bin.

0
28.01.2020, 02:40

Простое решение — использовать псевдоним. Поставить

alias mb='cd /mnt/c/Users/me/ho/hum/bin'

в свой ~/.bashrc. Затем вы можете просто ввести mb, и bash выполнит команду cd.

Очень многие оболочки — осмелюсь сказать, что большинство, если не все — поддерживают псевдонимы. Однако вам нужно будет добавить его в файл инициализации (например, .cshrc,.zshrc)каждой оболочки, которую вы хотите использовать. Имейте в виду, что синтаксис команды aliasможет различаться в разных оболочках.

1
28.01.2020, 02:40

Теги

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