Ответ 1
То, что вы действительно хотите, это функция, а не псевдоним.
pwd_alias() {
echo "$PWD"
}
Псевдонимы не более чем заменяют текст. Все, что со сложностью вызывает функцию.
Скажем, у меня есть следующий псевдоним.
alias pwd_alias='echo `pwd`'
Этот псевдоним не является "динамическим". Он оценивает pwd
, как только начинается оболочка. В любом случае, чтобы отсрочить оценку выражения в тиках до выполнения псевдонима?
То, что вы действительно хотите, это функция, а не псевдоним.
pwd_alias() {
echo "$PWD"
}
Псевдонимы не более чем заменяют текст. Все, что со сложностью вызывает функцию.
Как сказал иордан, псевдонимы не более чем заменяют текст.
Если вы хотите, чтобы аргумент эха был выходом pwd, расширенным на bash, тогда я не понимаю ваш вопрос.
Если вы хотите, чтобы аргумент эха был `pwd` с сохраненными backquotes, это действительно возможно, например:
alias a="echo '\`pwd\`'"
Итак, если вместо echo у вас есть что-то, что делает расширение backquote в его собственной среде выполнения, возможно, что вы хотите.
Я не верю, что вы можете изменить оценку, начиная с начала оболочки. Поскольку процессы создания псевдонима выполняются при запуске оболочки, тогда оценивается pwd
. Вы можете просто изменить псевдоним, чтобы просто запустить pwd
без обратных тиков в качестве pwd
выходов без необходимости эха. Простым способом решения этой проблемы является переход от использования псевдонима к оболочке script в вашем пути, если вы не хотите изменять использование псевдонима.
#!/bin/bash
pwd