Как узнать тип каждого элемента в выводе ls -l?

Если вам нужно использовать ] echo , затем попробуйте использовать return в кавычках, то есть '\ r' , а не только \ r . Вся строка выглядит следующим образом:

echo -ne $((($i+1)/100))\%'\r'

И взгляните на Почему printf лучше, чем echo?

1
01.03.2019, 14:05
1 ответ

Текст, создаваемый командами в терминале, представляет собой текстовые строки. Просмотр необработанных двоичных данных в терминале без преобразования их в какое-либо текстовое представление обычно приводит к «искаженному выводу» (, например, при запуске catсо сжатым файлом ), а в некоторых случаях может даже перевести терминал в непригодное для использования состояние.

Числа в выводе ls -lпредставляют собой текстовые строки.

Для чтения текста как целых чисел, например, в. программа C, программа должна будет прочитать их как текстовые строки, а затем преобразовать их в целые числа, используя, например,. strtol()или используйтеscanf()(или эквивалент )с правильной строкой формата.

Инструменты оболочки, которые считывают целые числа, такие как awk, например, обычно уже выполняют это преобразование за кулисами в соответствии с правилами, реализованными инструментом.


Примечание. :Программа на C не должна анализировать числа из вывода ls -l. Он должен вызывать stat()или lstat()для файлов, возвращенных readdir().

2
27.01.2020, 23:30

Теги

Похожие вопросы