Как в окне терминала через запуск скрипта можно изменить подсказку - чтобы она указывала на нужную папку? Поробовал вот так: https://ru.stackoverflow.com/questi...е-linux-не-отображается-путь-до-текущей-папки Вид посказки изменился, но на текущую папку не показывает Скрипт вот такой: Код (Text): #!/bin/bash cd /etc pwd ls но подсказака на /etc не показывает
Не понятно, а что надо подсказывать? Вы перешли в нужную директорию, определили текущую директорию, вывели список. А что надо-то?
Упрощенно задача такая: 1. Нахожусь в папке /home (в терминале попал в эту папку через команды cd к примеру) 2. в терминале подсказка - /home 3. в папке /home есть скрипт, в котором через команды cd перехожу в /etc и печатаю содержание через ls. 4. Запускаю скрипт. Печатается содержание содержание /etc. Нужно чтобы и подсказка терминала стала /etc. Т.е. как сменить текущий указатель терминала на другую папку через скрипт. Вроде везде написано поправить PS1 в файле .bashrc Или я не совсем правильно понимаю?
Попробуйте запускать через команду source, чтобы ваш скрипт выполнялся в текущей командной сессии Код (Bash): source ./my_script.sh
Шикарно! Все сразу заработало. Спасибо огромное! p.s. ....эхма....сколько еще чудных тайн линукса скрыто от меня, новичка в этом деле...пойду учить матчасть
Выражайтесь, пожалуйста, яснее... Вам нужно не "сменить подсказку", а сменить текущий каталог на тот, в котором выполнялся скрипт.
Может быть вы правы. Но мне показалось что при выполнении скрипта вот с таким кодом: Код (Text): #!/bin/bash cd /etc pwd ls происходило изменение текущего каталога на /etc и там выполнялись команды pwd и ls. При этом сам скрипт находился в /home. Поэтому мне как-бы не нужно было "сменить текущий каталог на тот, в котором выполнялся скрипт". Собственно после поста ZAZ-965 я нарыл вот это: Код (Text): source позволяет выполнить скрипт в текущем процессе оболочки bash. По умолчанию для выполнения каждого скрипта запускается отдельная оболочка bash, хранящая все его переменные и функции. После завершения скрипта всё это удаляется вместе с оболочкой. Но звание у вас выше, поэтому спорить с вами не хочу....
то что вы цитируете - подтверждает мои слова.: Код (Text): По умолчанию для выполнения каждого скрипта запускается отдельная оболочка bash, хранящая все его переменные и функции. После завершения скрипта всё это удаляется вместе с оболочкой. то есть ваш скрипт выполняется в отдельной оболочке и то, что этот скрипт делает - никак не влияет на ваши текушие переменные, в том числе на текущий каталог. Скрипт переходит в /etc. но это происходит в его оболочке, в вашей каталог не меняется.Поэтому после завершения скрипта вы остаетесь в /home, где и были. Ваша задача была в том, чтобы исполнение скрипта меняла параметры вашей оболочки, а не отдельной.