PS1 = '$ PWD $' не работает из сценария оболочки - PullRequest
1 голос
/ 28 марта 2012

Я не эксперт по Solaris, и я пытаюсь создать сценарий оболочки, который изменит мое приглашение на PWD и ksh на bash, и у меня есть это:

PS1 = '$ PWD $' exec bash--noprofile --rcfile / dev / null

или

PS1 = '\ w $' exec bash --noprofile --rcfile / dev / null

Оба изони не работают с ш.если я добавлю их из командной строки, то в первый раз мой bash появится в командной строке, а во второй раз появится PS1 = '$ PWD $', и моя подсказка изменится.

Во-первых, почему PS1 = '$ PWD $' не работает из сценария оболочки.и почему я должен выполнить команду из командной строки дважды, чтобы получить свои результаты.

Кроме того, в моем каталоге export / home / syed / находятся три файла local.login, local.profile и local.cshrc.Есть ли способ, которым я могу использовать их, что когда я вхожу в систему, мне не нужно запускать мой скрипт оболочки, и при входе в систему я получаю bash shell и мое приглашение, как я этого хочу (я спрашиваю слишком много, мне не нравится ksh, как онне имеет каких-либо функций, таких как всплывающие стрелки вверх, последние команды и функции автозаполнения вкладок)

спасибо Syed ...

Ответы [ 3 ]

1 голос
/ 28 марта 2012

Когда вы exec изнутри скрипта, сценарий заменяется, а не родительской оболочкой.

Попробуйте использовать сценарий, а не запускать его.

Кроме того, в Solaris вы можете использовать passwd -e для изменения оболочки входа в систему.

Вы можете использовать символическую ссылку ~/.profile на существующий ~/local.profile (или аналогичный). Обратите внимание, что .cshrc для оболочки C и не совместимо с ksh или Bash.

1 голос
/ 28 марта 2012

Если вы хотите, чтобы ваша оболочка по умолчанию была bash, измените ее в / etc / passwd

0 голосов
/ 28 марта 2012

Когда вы exec bash, он создает собственную среду с нуля.Передайте ему --rcfile, содержащее настройки, которые вы хотели бы, чтобы он наследовал.

...