[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: echo в dash и bash



On Wed, Oct 03, 2007 at 10:32:03AM +0600, Igor Goldenberg wrote:
> Здравствуйте.
> 
> В связи с продолжающимся переходом дебиана на традиционные ценности
> (такие, как POSIX совместимый dash в качестве sh) возник вопрос с
> командой echo.
> 
> В обеих оболочках это встроенная команда, однако у них разное поведение.
> Например, по-умолчанию echo в bash (как и /bin/echo) не интерпретирует
> escape последовательности (навроде \n, \t и т.п.), чтобы это включить
> надо использовать параметр -e (и -E чтобы выключить). В dash нет
> параметров -e/-E, есть только -n. И работает оно только в режиме
> интерпретации. Поведение несколько странное, а в стандарте на шелл я не
> нашёл вообще ничего про echo. Видимо, оно берёт за основу поведение
> "POSIX-стандартного" /bin/echo.
> 
> Вопрос в следующем - как лучше делать переносимный скрипт, когда
> требуется использовать escape последовательности?
> 
> Можно прописать вызовы /bin/echo, но будут ли они на не-GNU системе
> работать так же (поддерживая ключ -e)? Можно использовать printf (это
> вроде более переносимо, но как-то редко попадается на глаза, как будто
> его предпочитают не использовать). Что правильнее?
> 

не используйте echo. есть printf.

/swp



Reply to: