I Я пытаюсь создать псевдоним, который изменяет каталог и печатает некоторый контент.
Я написал эту строку:
alias test="cd ~/Documents/MyDir && echo 'content'"
Результат:
content
~$:~/Documents/MyDir
Ожидаемый результат был:
~$:~/Documents/MyDir content
Если не будут добавлены дополнительные детали, то, что ниже, неплохое предположение о том, что происходит.
Во-первых, кое-что необходимо знать:
Сама команда cd
не будет генерировать никаких выходных данных в вашем примере; см. команду cd
на странице руководства Bash, чтобы узнать о 2 условиях, когда она действительно генерирует вывод, ни одно из которых здесь не применимо. (Возможно, вы или ваш системный администратор изменили настройку по умолчанию, но давайте предположим, что нет. Вы можете проверить это, запустив type cd
; если вы видите cd - это встроенная оболочка
, тогда никакого переопределения не произошло.)
Когда оболочке требуется ввод от вас, она выдает приглашение, чтобы вы знали, что ждет вас. То, что он печатает, определяется значением переменной оболочки с именем PS1
; вы можете увидеть это, введя echo "$ PS1"
. Вашим может быть что-то вроде ~ $: \ w
( \ w
расширяется до вашего текущего каталога; см. Раздел PROMPTING на странице руководства Bash).
Что происходит, когда вы вводите test
для вызова своего псевдонима:
содержимое
, затем PS1
. ... и поэтому вы получаете неожиданные результаты.
Последнее замечание: в Unix / Linux уже есть команда с именем test
; запустите man test
, чтобы увидеть, что он делает.Вы можете назвать свой псевдоним , попробуйте
или albertotest
. : -)