Как отобразить текущий путь в командной строке в sh linux (не bash)?

Я хотел бы отобразить текущий путь в приглашении sh (не bash shell), которое в настоящее время просто показывает "#",
Я пытался представить это

env PS1="$(whoami)@$(hostname):$(pwd)"

и

set PS1="$(whoami)@$(hostname):$(pwd)"

in /etc/profile.

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

1
задан mpy
17.05.2023 9:44 Количество просмотров материала 3070
Распечатать страницу

5 ответов

подстановки команд в двойных кавычках " немедленно расширяется. Это не то, что вы хотите для вашего приглашения. Одинарные кавычки ' сохранит замены в $PS1 которая расширяется только при отображении подсказки. Следовательно, это должно работать:

export PS1='$(whoami)@$(hostname):$(pwd)'

если вы хотите обычный знак доллара и пробел в конце строки, просто добавьте $ в конце (побег не требуется):export PS1='$(whoami)@$(hostname):$(pwd)$ '

57
отвечен mpy 2023-05-18 17:32
sh-4.2$ export PS1="\u@\h:\w>"
jenny@serenity:~>cd /usr/local
jenny@serenity:/usr/local>
10
отвечен Jenny D 2023-05-18 19:49

эта команда работает для меня.

export PS1="\u@\h: \W:$"

здесь

\u = имя пользователя

\ч = имя

\W имя данной папки (не полный путь)

2
отвечен rangsiman 2023-05-18 22:06

один ответ состоял в том, чтобы использовать одинарные кавычки вместо двойных кавычек, однако, это не совсем правильный ответ. То, что вы действительно хотите сделать, это отложить оценку кода внутри приглашения до тех пор, пока оно не будет использовано.

set PS1="$(pwd)" 

задает запрос в рабочий каталог как команды set.

set PS1="$(pwd)" 

не расширяет $(pwd). Вместо этого для PS1 задано литеральное значение $(pwd).

тест / понять это, выполнив:

echo $PS1

. Если вы видите строку : $pwd и быстрое строительство. Если вы видите литеральный путь, приглашение нарушено, потому что оно было статически установлено

1
отвечен MaasSql 2023-05-19 00:23

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

экспорт PS1= ' $(whoami)@${имя хоста%%.* } [$(pwd)]# '

1
отвечен Milan 2023-05-19 02:40

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

busybox
linux
sh
shell
Вверх