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


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

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

alias execloc='/home/user/'

Превращая это в команду в терминале bash:

cd exeloc/temp/somefolder

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


1
2017-10-24 05:13


происхождения




ответы:


Вы не можете этого сделать, потому что /home/user/ не является командой. Это больше похоже на статическую строку.

Из man bash (где-то на линии 1984):

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

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

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

export execloc='/home/user/'

И тогда вы можете использовать его везде, где хотите, а именно:

cd $ exeloc/temp/somefolder

2
2017-10-24 05:51





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

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

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

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

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

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


0
2017-10-24 06:04





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

экспорт EXECLOG = / home / user

cd $ EXECLOG / temp / некоторая папка

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

(завершено, чтобы зафиксировать опечатку в EXECLOG)


0
2017-10-24 06:53



Ты видел этот ответ? - Radu Rădeanu
Да, я ... ты пытался запустить то, что я предложил? Подстановка выполняется в оболочке и будет выполнять пример OP. - FreudianSlip
Ах, теперь я вижу - ваше сообщение содержит то, что я опубликовал, так что я дублировал ваш ответ. ТАК, хотя я видел ваш ответ, я не читал его полностью. Снимите нижний план, и я удалю ответ. - FreudianSlip