LINUX.ORG.RU

как сделать что бы echo не убирал переносы строк?

 , ,


0

1
$ var=$(ls -lh)
$ echo $var
this is one string
$

Часто использую переменные для вывода и хотелось бы что бы этот вывод не менял свою струтуру. Может как-то без echo можно это сделать? Мне нужно вот так:

$ echo $var | sed -n 3p
one

awk прошу не предлагать, потому что строки могут быть с пробелами и другими разделителями, так же awk не может адекватно воспринимать другие переменные внутри себя.

использовать более адекватный и современный скриптовый язык уже предлагали?

anonymous
()
Ответ на: комментарий от anonymous

Задача обойтись классическими консольными инструментами. Конечно посмотрю ваши варианты, если это будет быстрее работать либо код короче.

vachicul
() автор топика

А то что это добавляет переносы строк не мешает?

$ echo "test" | ruby -e "p STDIN.read"
"test\n"

TDrive ★★★★★
()
Ответ на: комментарий от vachicul

если это будет быстрее работать либо код короче

Вот. А потом эти же люди жалуются и бесятся с говнокода и костылей. А нужно всего-то правильно расставить приоритеты. Почему никто не слушает, когда говорят, что читаемость и понимаемость кода важнее его размера и скорости выполнения программы? Важнее ведь? С самого детства нам все поговорки об этом же твердят:

  • Поспешишь — людей насмешишь.
  • Тише едешь — дальше будешь.
  • Быстро только кошки родятся.
  • Слово — серебро, молчание — золото.
  • Слово — не воробей, вылетит — не поймаешь.
  • Баба с возу — кобыле легче.
  • Гусь свинье не товарищ.
  • Мал клоп, да вонюч.
  • Широкой на широкую, ёбаные волки.

Ой. Ладно. Ну вы поняли. Пишите так, чтобы было понятно всем во всякой ситуации.

А вот ещё хорошие пословицы: «К чему душа лежит, к тому и руки приложатся», «В весёлый час и смерть не страшна».

anonymous
()
Ответ на: комментарий от anonymous

echo "fck" куда уж короче и понятнее? Читаемость не всегда оправдывает условия программы или требования к её размеру.

vachicul
() автор топика
Ответ на: комментарий от erfea

В начале сразу предложили. Сработало как надо. Потом прибежали голодные рептилии и начали брызжить ядом на «неправильное» решение задачи.

vachicul
() автор топика
Ответ на: комментарий от erfea

Имхо, что-то более сложное чем групповое переименование файлов, лучше на Жабе или Питоне писать. Шелл не для программирования. Если прижало, можно конечно и там, но это боль…

QsUPt7S ★★
()
Ответ на: комментарий от vachicul

Читаемость не всегда оправдывает условия программы или требования к её размеру.

не всегда, но в большинстве случае

среднестатистический программный код (если это не джастфофанный велосипед) читается гораздо большее количество раз, чем пишется/изменяется, потому читаемость (точнее - поддерживаемость) должна быть первоочередной задачей, а уж оптимизации надо применять только тогда, когда (и если) появятся узкие места.

anonymous
()
Ответ на: комментарий от erfea

для 70х годов прошлого века - может быть.

но сейчас (да что сейчас, уже в 80х индустрия была готова предложить более юзерфрендли решения) использовать никсы в чистом виде может только мазохист (или жертва стокгольмско-утёнковского синдрома)

я даже могу разложить все претензии по полочкам, но надо ли оно фанбоям?

anonymous
()
Ответ на: комментарий от anonymous

Программа нужна сейчас, и сейчас она отлично работает на 100% shell. Я не спорю что лучше на питоне, но я не умею.

vachicul
() автор топика
Ответ на: комментарий от anonymous

я даже могу разложить все претензии по полочкам, но надо ли оно фанбоям?

Ну давай, удиви, чудо! )

erfea ★★★★★
()
Последнее исправление: erfea (всего исправлений: 1)
Ответ на: комментарий от anonymous

использовать никсы в чистом виде может только мазохист (или жертва стокгольмско-утёнковского синдрома)

я даже могу разложить все претензии по полочкам, но надо ли оно фанбоям?

я другой семён, но вот как я вижу: просто юникс должен быть литературно-грамотным.

например, как Ulix «Ulix, the Literate Unix»: в ulix-book.nw написан литературно-грамотный исходник в noweb, который по notangle генерит сорцы ведра (оно там минималистичное, не так страшно как лялекс) и книжку в .tex

это можно развить далее в обероны типа A2 на активном обероне или, прости господи, TempleOS нашего незабвенного Terry.

где легко интерактивно тыкать, запуская средней кнопкой из «текста как интерфейс» модули и команды, последовательно, по мере прочтения и понимания книжки.

как в оберонах «интеркликами мышкой» или как в православном Plan 9 : acme и plumbing, по настраиваемым и программируемым правилам.

сюда же можно накрутить и более другие языки, а не обязательно времени конпеляции.

например, не к ночи будь помянут, питон. через жупитер ноубтук.

тезис в том, что современный лялекс вообще да и несовременный юниксвей в частности – весьма сильно оверинжинернут и недо переоценён.

то есть, если погрузить в более другую среду, с более простыми и понятными – объектами, кодом, технологиями программирования – а также, документирования и понимания — возможно, нечто такое и взлетит.

и пользоваться им станет не слишком сложнее но гораздо удобнее и проще программируемо.

навроде жупитер ноутбук. только с более ООП интерфейсами, визуально и интерактивно.

я даже могу разложить все претензии по полочкам, но надо ли оно фанбоям?

интересно послушать твою версию. излагай.

anonymous
()
Ответ на: комментарий от anonymous

90% текста непонятно но читать интересно. В итоге можно кодить средствами оболочки и используется это где-то?

vachicul
() автор топика

Зачем тут вообще переменная?

ls -lh | sed -n 3p one
ashot ★★★★
()
Последнее исправление: ashot (всего исправлений: 1)
$ IFS='\n' var=$(ls -lh)
$ echo $var
ashot ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.