2014-09-08 3 views
1

Я создаю исходный файл с некоторым псевдонимом исполняемым файлам (они работают нормально) и присваивает каталогам переменные, чтобы быстрее добраться до каталога, с меньшим набором текста. Например, если источник I example.source:Назначить каталог переменной в исходном файле

#!/usr/bin/bash 
mydir="/path/to/some/dir" 

я могу добраться до /path/to/some/dir с

cd $mydir 

Однако, я не в состоянии использовать вкладку полностью перемещаться через другие подкаталоги, как я набрав полный путь. Я имею в виду, если я использую ключ табуляции для заполнения переменной, я получаю cd $mydir, но не cd $mydir/ (мне нужно удалить последний пробельный символ и вручную ввести косую черту /, чтобы увидеть следующие подкаталоги). Надеюсь, это понятный вопрос. Есть ли обходной путь для этого?

EDIT: распределение Linux я использую Slackware Linux 3.2.31.c x86_64 GenuineIntel GNU/Linux

EDIT2: GNU Баш, версия 4.2.37 (2) -релиз

+1

Я не знаю, как получить завершение вкладки, чтобы знать, что вы хотите, чтобы это было сделано, но вы могли бы придерживаться конечной косой черты в переменной и использовать 'cd $ {myd ', который будет завершен до 'cd $ {mydir} ', и вы могли бы пропустить, если нужно набрать косую черту. (Хотя cd здесь не заполняет имена переменных для меня, поэтому я не знаю, что происходит.) –

+0

ОК, спасибо, я могу выполнить вкладку по переменным в моей системе (Linux 3.2.31.c x86_64, Slackware) – PedroA

+0

О, я могу вставить полные переменные, просто не с 'cd'. –

ответ

0

Если я понимаю ваш вопрос, то я считаю, что его можно решить, поставив его в верхней части вашего example.source. Это будет отображать ваше содержимое каждый раз, когда вы cd.

#!/usr/bin/bash 

    # Make cd change directories and then list the contents 
    function cd() { 
     builtin cd $*; 
     ls; 
    } 

    mydir="/path/to/some/dir" 
    cd $mydir 

Мое другое предложение - попытаться установить cd в свой псевдоним. Что-то вроде этого:

mydir="cd /path/to/some/dir" 
    $mydir 
+2

Я не верю, что ни один из них даже не приблизился к ответу на вопрос. Он хочет, чтобы можно было заполнить имя переменной, а затем продолжить вкладку, завершающую пути внутри этого каталога. –

1

По-видимому, эта функция начинает воплощаться в bash 4.3, release 26-Feb-2014 09:25.

Чтение файла NEWS в Баш 4.3 Я нашел это:

я. Код завершения слова проверяет, является ли имя файла , содержащее переменную оболочки , расширяется до имени каталога и добавляет слово `/ 'к слову , если это необходимо. Тот же код расширяет переменные оболочки в именах команд при выполнении команды.

К сожалению, я не могу выполнить установку de novo bash (потому что я работаю на сервере), но я надеюсь, что это может помочь другим.

Смежные вопросы