Подскажите пожалуйста: везде написано, что одинарные кавычки подавляют любые expansion.
Почему тогда PS1='[$?]' корректно в качестве строки приглашения выводит статус возврата предыдущей команды?
Т.е вопрос такой - когда все таки в кавычках есть expansion, а в каких нет?
вопрос по bash
Модераторы: /dev/random, Модераторы разделов
-
- Сообщения: 115
- ОС: ubuntu
Re: вопрос по bash
Код: Выделить всё
bl00dl1nes@naruto[~]$ echo "123"; test='[$?]'; echo $test;
123
[$?]
bl00dl1nes@naruto[~]$
?
При замене одинарных кавычек на двойные все встает на свои места (в переменной test оказываеться код возврата последней команды в квадратных скобках)
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: вопрос по bash
Содержимое PS1 экспандится еще раз при выводе подсказки.
bash
$ a='${b}'
$ b=B
$ PS1="${a}${b}"'${a}${b}\$ '
BB${b}B$ echo $PS1
${b}B${a}${b}\$
BB${b}B$
Мои розовые очки
-
- Сообщения: 25
Re: вопрос по bash
???
Вопрос как раз в том что PS1='[$?]' работает КОРРЕКТНО (в посте я тоже не ошибся) - т.е expansion действует получается в этой ситуации даже в одинарных кавычках?. А где же систематичность?
Вопрос как раз в том что PS1='[$?]' работает КОРРЕКТНО (в посте я тоже не ошибся) - т.е expansion действует получается в этой ситуации даже в одинарных кавычках?. А где же систематичность?
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: вопрос по bash
Повторю: PS1 экспандится при выводе подсказки.
UPD: при присваивании, экспандится не PS1, а команда. Итого, происходит два раскрытия: раскрытие команды и раскрытие содержимого PS1 при выводе подсказки.
Мои розовые очки
-
- Сообщения: 25
Re: вопрос по bash
watashiwa_daredeska писал(а): ↑14.07.2009 11:05Повторю: PS1 экспандится при выводе подсказки.
UPD: при присваивании, экспандится не PS1, а команда. Итого, происходит два раскрытия: раскрытие команды и раскрытие содержимого PS1 при выводе подсказки.
Спасибо watashiwa_daredeska, когда писал второй пост не видел вашего комментария.