Если просто написать export PS1="что-то". То вместо первичного приглашения будет что-то.
Но требуется из-под скрипта или shell программы изменить PS1. То есть пусть есть shell proga
proga
export PS1
далее пишу
chmod +x proga
./proga
или же запускаю proga из-под crontab
Но тут уже PS1 не меняется. И приглашение остается прежним. Так как все-таки сделать так чтобы PS1 изменилась proga й/
Первичное приглашение. По поводу переменной PS1
proga
export PS1
Что это?
shell программа под именем proga со строкой export PS1
1. Как интерпретатор должен понять, что это шелл-скрипт? (хотя, по-идее, должен)
2. Какое значение передаётся в скрипте PS1?
1) chmod +x proga
это строка передает управление файлу прога.
./proga
тут сам вызов проги.
2) Да без разницы. Пусть например PS1=1
Смысл в том, что видимо proga воспринимает PS1 как свою локальную переменную. Поэтому настоящее PS1 и не меняется, а надо
1. Значения переменных не передаются предкам. Только потомкам! Если вы из шела 1 запускаете шелл 2 и в шеле 2 присваиваете значение и даже экспортируете переменную А, то только порожденные шеллом2 процессы будут знать это значение... Предки(шелл1 и шелл 0 и т.д.) не будут об этом даже догадываться.
2. если вы хотите, чтоб сие всегда было у вас в шелkе, то впишите свой export PS1='xpenb' в .bashrc
Да, скрипт запускает свой экземпляр шелла. Что бы запустить скрипт в текущей оболочке, используйте точку:
. progaХаритон. Проблема в том что если изменить PS1 в .bashrc. То приглашение изменится только после перезапуска терминала. А мне нужно сразу чтоб менялось
Serj. Допустим я хочу запусть proga по расписанию, используя crontab. Например в 10 часов 10 минут. Тогда crontab будет выглядеть так.
10 10 * * * . proga
Но это почему -то не приведет к смене PS1.
Хотя просто в shell . proga действительно рабоатет
Но это почему -то не приведет к смене PS1.
Так он выполнится же не из терминала...
и как тогда быть
Харитон. Проблема в том что если изменить PS1 в .bashrc. То приглашение изменится только после перезапуска терминала. А мне нужно сразу чтоб менялось
очень просто.
ехпорт пс1="значение"
bash
))))
и как тогда быть
Для начала сформируйте зачем это надо, а мы подумаем как это реализовать, потому как то что вы хотите(как я понял) не реализуемо в юникс.
Для начала сформируйте зачем это надо, а мы подумаем как это реализовать, потому как то что вы хотите(как я понял) не реализуемо в юникс.
Смысл в том что мне нужно заставить PS1 меняться каждые 10 секунд. Например PS1 показывает время, и оно обновляется каждые 10 секунд. Может как-то PROMPT_COMMAND использовать. PS1 пустым оставить, а PROMPT_COMMAND на его место, ток не знаю как реализовать то что надо
и оно обновляется каждые 10 секунд.
Ну спрашивают же, зачем?
Познаю возможности linux
А есть ли возможность обновить в терминале то, что уже написано. Скажем Команда date выводит время. Можно как-то сделать чтоб в режиме ожидания строка которую вывела date менялась в соответствии с показанием часов?
А есть ли возможность обновить в терминале то, что уже написано. Скажем Команда date выводит время. Можно как-то сделать чтоб в режиме ожидания строка которую вывела date менялась в соответствии с показанием часов?
conky
обновление в 1 секунду
[quote=andr-ok]А есть ли возможность обновить в терминале то, что уже написано. Скажем Команда date выводит время. Можно как-то сделать чтоб в режиме ожидания строка которую вывела date менялась в соответствии с показанием часов?
conky
обновление в 1 секунду[/quote]
Сама по себе date обновляется раз в секунду, кто спорит. Но если написать echo `date` то что выведится не будет изменяться раз в секунду. Можно ли как-то изменять?
[quote=moshell][quote=andr-ok]А есть ли возможность обновить в терминале то, что уже написано. Скажем Команда date выводит время. Можно как-то сделать чтоб в режиме ожидания строка которую вывела date менялась в соответствии с показанием часов?
conky
обновление в 1 секунду[/quote]
Сама по себе date обновляется раз в секунду, кто спорит. Но если написать echo `date` то что выведится не будет изменяться раз в секунду. Можно ли как-то изменять?[/quote]
зачем?
вы подозреваете, что в линуксах часы идут не так как в других системах?