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

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

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

alias execloc='/home/user/'

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

cd exeloc/temp/somefolder

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

2
задан 18.04.2020, 00:26

3 ответа

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

Из man bash (где-то в строке 1984):

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

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

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

export execloc='/home/user/'

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

[111 ]
2
ответ дан 18.04.2020, 00:26

Я не думаю так с 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
ответ дан 18.04.2020, 00:27

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

export EXECLOG = / home / user

cd $ EXECLOG / temp / somefolder

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

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

0
ответ дан 18.04.2020, 00:27
  • 1
    Да, я имею - Вы попытались выполнить то, что я предложил? Замена сделана в оболочке и выполнит пример отправленный OP. – Zan Lynx 18.04.2020, 00:28
  • 2
    Вы видели этот ответ ? – RichardLiu 18.04.2020, 00:28
  • 3
    А-ч, теперь я вижу - Ваше сообщение содержит то, что я отправил также - таким образом, я копировал Ваш ответ. ТАКИМ ОБРАЗОМ, хотя я действительно видел Ваш ответ, я didn' t читают все это путь через. Снимите downvote и I' ll удаляют ответ. – brokenfoot 18.04.2020, 00:28

Теги

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