Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 8

Сценарий на bash

17.06.2011, 13:07. Показов 2755. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу написать сценарий для обработки png-файлов c помощью утилиты pngout

Есть несколько вопросов по bash.
У меня скрипту может передаваться как один параметр, например, такой *.png
Так и несколько параметров 0.png 1.png 2.png

Так вот, как узнать количество параметров скрипта?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2011, 13:07
Ответы с готовыми решениями:

Командный сценарий для интерпретатора bash
Ребят, нужна помощь по лабе. 1.Написать командный сценарий для интерпретатора bash, который выводит количество строк, содержащих...

Командный сценарий для интерпретатора bash
Всем привет. Нужна помощь. Написать командный сценарий для интерпретатора bash, который выводил бы отсортированный по имени файла...

Подскажите пожалуйста как Реализовать сценарий на диалекте языка командного интерпретатора bash!!!!!
Реализовать сценарий на диалекте языка командного интерпретатора bash, производящий выполнение заданной команды в заданной директории (и...

5
 Аватар для Imate
121 / 77 / 1
Регистрация: 08.06.2011
Сообщений: 267
17.06.2011, 13:13
Bash
1
$#
позволю себе ссылку
Advanced Bash-Scripting Guide
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 8
17.06.2011, 15:25  [ТС]
спасибо, буду изучать

Добавлено через 43 минуты
хочется сделать еще небольшой лог

Для этого мне нужно выводить последнюю строку файла. Можно ли это как-то сделать, не читая файл полностью построчно? Пытался сделать с помощью tail, но не получилось

Сначала я получаю количество строк в файле:
linecount=`cat pngout.log | wc -l`

Потом пытался вывести последнюю строку:
tail -n $linecount pngout.log

Однако выводится весь файл. Помогите разобраться
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
17.06.2011, 15:31
Цитата Сообщение от theo_ Посмотреть сообщение
Сначала я получаю количество строк в файле:
linecount=`cat pngout.log | wc -l`
Потом пытался вывести последнюю строку:
tail -n $linecount pngout.log
Однако выводится весь файл. Помогите разобраться
жжошь.
Объясняю по-русски. Ты считаешь кол-во строк в файле и выводишь через опцию -n выодишь с конца строки в количестве "все". Думаю, ты понял, что исправить.
1
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
17.06.2011, 15:37
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
-bash-4.1$ tail --help
Использование: tail [КЛЮЧ]... [ФАЙЛ]...
Печатает последние 10 строк каждого из ФАЙЛОВ на стандартный вывод.
Если задано несколько ФАЙЛОВ, сначала печатает заголовок с именем файла.
Если ФАЙЛ не задан или задан как -, читает стандартный ввод.
 
Аргументы, обязательные для длинных ключей, обязательны и для коротких.
  -c, --bytes=Н            показать последние Н байт; или же укажите -c +Н,
                           чтобы начать вывод каждого файла с Н-го байта
  -f, --follow[={name|descriptor}]
                           выводить поступающие данные по мере роста файла;
                           -f, --follow и --follow=descriptor эквивалентны
  -F                       эквивалент --follow=name --retry
  -n, --lines=Н            выводить последние Н строк, а не последние 10;
                           или используйте -n +Н для вывода строк, начиная с Н-ной
      --max-unchanged-stats=Н
                           c ключом --follow=name, повторно открывать ФАЙЛ,
                           который не изменялся последние Н (по умолчанию 5)
                           итераций, чтобы проверить, не был ли он удалён или
                           переименован (такое обычно бывает при ротации
                           системных протокольных файлов)
      --pid=PID            с ключом -f, прерваться, когда процесс PID
                           завершает работу
  -q, --quiet, --silent    не выводить заголовки с именами файлов
      --retry              продолжать пытаться открыть файл даже когда он есть
                           или станет недоступным; полезно, когда указывается
                           имя, то есть, с --follow=name
  -s, --sleep-interval=С   с ключом -f, спать между итерациями примерно
                           С секунд (по умолчанию 1.0)
  -v, --verbose            всегда выводить заголовки с именами файлов
      --help     показать эту справку и выйти
      --version  показать информацию о версии и выйти
 
 
Если первым символом в Н (числе байт или строк) является `+', то выводит
с Н-ного байта (или строки) от начала каждого файла, иначе выводит
последние Н байт (или строк). Н может иметь суффикс-множитель:
b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,
GB 1000*1000*1000, G 1024*1024*1024 и так далее для T, P, E, Z, Y.
 
С ключом --follow (-f), tail по умолчанию следует за дескриптором файла, что
означает, что даже если файл переименован, tail будет и далее следить за его
концом. Это поведение, принимаемое по умолчанию, нежелательно, если вы на
самом деле хотите следить за именем файла, а не за дескриптором
(пример -- сдвиг протокольных файлов). В таком случае используйте
--follow=name. Это заставит tail следовать за указанным файлом, повторно
открывая его периодически, чтобы узнать, не был ли он удален и заново создан
какой-то другой программой.
 
Об ошибках в tail сообщайте по адресу bug-coreutils@gnu.org.
Домашняя страница GNU coreutils: <http://www.gnu.org/software/coreutils/>
Справка по работе с программами GNU: <http://www.gnu.org/gethelp/>
Об ошибках в переводе tail сообщений по адресу <gnu@mx.ru>
Полная документация доступна по команде: info coreutils 'tail invocation'
-
фраза
-n, --lines=Н выводить последние Н строк, а не последние 10;
в твоем конкретном случае значает
Bash
1
tail -n 1 pngout.log
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 8
17.06.2011, 15:43  [ТС]
Спасибо, понял
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2011, 15:43
Помогаю со студенческими работами здесь

Написать командный сценарий для интерпретатора bash для смены расширения у файлов текущего каталога
Написать командный сценарий для интерпретатора bash для смены расширения у файлов текущего каталога. Первым параметром к сценарию...

Составьте сценарий обработки формы. Сценарий должен включать две веб-страницы
Составьте сценарий обработки формы. Сценарий должен включать две веб-страницы: страница с формой и страница-обработчик. Страница-обработчик...

Составьте сценарий обработки формы. Сценарий должен включать две веб-страницы
Составьте сценарий обработки формы. Сценарий должен включать две веб-страницы: страница с формой и страница-обработчик. Страница-обработчик...

я создал сценарий в cmd(командной строке) через блокнот ,формат у меня bat ,сохранил,запускаю ,и когжа я этот сценарий запускаю у меня быстро он откры
Не знаю куда писать,так написал сюда: я создал сценарий в cmd(командной строке) через блокнот ,формат у меня bat ,сохранил,запускаю ,и...

Сценарий JS
Определить является ли значение целочисленных переменных N и M кратным 3.Если оба значения кратные 3 то вычислить их сумму,в противном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru