Подстановка псевдонима для строки, чтобы использовать ее в терминальной команде

Есть ли способ заменить псевдонимы так, чтобы они добавлялись или добавлялись к существующей команде в оболочке?

Например, определение псевдонима:

alias execloc='/home/user/'

Добавление этого к команде в терминале bash:

cd exeloc/temp/somefolder

Может ли что-то подобное быть сделано или Есть ли способ сделать это?

2
задан 24 October 2013 в 10:17

3 ответа

Вы не можете сделать этого как это потому что /home/user/ не команда. It't больше как статическая строка.

От man bash (где-нибудь в строке 1984):

Псевдонимы позволяют строке быть замененной слово, когда это используется в качестве первого слова простой команды.

В Вашем случае, execloc никогда не будет первое слово простой команды.

Но, вместо этого для определения execloc как псевдоним, можно определить его как переменную среды:

export execloc='/home/user/'

И затем можно использовать его везде, Вы хотите следующим образом:

cd $exeloc/temp/somefolder
2
ответ дан 24 October 2013 в 10:17

Я не думаю так с bash / dash, но я могу ошибаться. Я думаю, что это возможно с помощью 'zsh' (псевдоним -g foo = 'bar').

Но есть и другие возможности.

Если вам нужны более удобные команды «cd», вы можете использовать CDPATH (Google google). Или используйте символические ссылки или жесткие ссылки (man ln).

Или измените / создайте ~ / .inputrc с помощью строки вроде:

Control-f: "grep -r -i. \ E [D \ e [D \ e [D"

] 116] Это набирает команду grep для меня, а затем возвращает перед точкой, чтобы я мог набрать ctrl-f и затем слово, которое я ищу.

0
ответ дан 24 October 2013 в 10:17

Вы можете сделать это (если я правильно прочитал ваш вопрос) следующим образом:

export EXECLOG = / home / user

cd $ EXECLOG / temp / somefolder

В основном настройте свои замены в оболочке и получите к ним доступ, поставив перед ними префикс со знаком «$». Стандартные переменные оболочки.

(выход для исправления опечатки в EXECLOG)

0
ответ дан 24 October 2013 в 10:17

Другие вопросы по тегам:

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