Я довольно новичок в zsh (oh-my-zsh), и я пытаюсь написать собственную тему. я столкнулся с проблемой, и свел его к следующему TestCaseФункция zsh работает только один раз
PROMPT='$RANDOM > '
работает как и ожидалось, он производит случайное число на каждую команду. Но при использовании функции
PROMPT='$(my_random) > '
function my_random(){
echo $RANDOM
}
она всегда возвращает один и тот же номер, даже после того, как source ~/.zshrc
все тот же номер. только когда я закрываю окно терминала и снова открываю его, я получаю новый номер, который остается неизменным для всего сеанса.
только тогда, когда я делаю:
PROMPT='$RANDOM $(my_random) > '
function my_random(){
echo $RANDOM
}
я получаю два случайных числа, как и ожидалось ... любое объяснение такого поведения?
btw, я использую konsole kde на новой установке арки.
Редактировать
FWIW я нашел с помощью/DEV/urandom непосредственно работает хорошо. Мне все равно хотелось бы знать, что происходит.
function my_random() {
echo $(cat /dev/urandom | tr -dc '0-9' | head -c5)
}
Спасибо за разъяснение. Приятный трюк с пустым расширением. Думаю, я поеду с этим. Благодаря! –
'precmd() {: $ RANDOM; PS1 = "$ (my_random)>"; } 'должен работать по назначению. – chepner