Board.KolibriOS.org
http://board.kolibrios.org/

Очень функциональный шелл
http://board.kolibrios.org/viewtopic.php?f=48&t=1111
Page 3 of 13

Author:  barsuk [ Sun Aug 17, 2008 4:17 am ]
Post subject:  Re: Очень функциональный шелл

Шелл нужен, многие очень приыкли к комндной строке. Да и скрипты без шелла писать трудно. Пиши еще! ;)

Author:  DmitrySokolowsky [ Fri Aug 29, 2008 11:15 pm ]
Post subject:  Re: Очень функциональный шелл

А как у него с поддержкой папок? Можно, например, использовать пути к папкам на жёстком диске?

Author:  Albom [ Sat Aug 30, 2008 6:25 am ]
Post subject:  Re: Очень функциональный шелл

с папками должно быть всё в порядке, так как используется 70-я ф-ция. пробовал перемещаться по каталогам жёсткого диска (особое внимание обратил на папку system32 - заходит и выдаёт список файлов без проблем), а также cd и dvd - тоже проблем не было.


2 all
обнаружил, что не работает команда alias :( хотелось бы узнать - у кого работает, а у кого нет?

Author:  DmitrySokolowsky [ Thu Oct 23, 2008 1:08 pm ]
Post subject:  Re: Очень функциональный шелл

Дал команду:
Code:
/rd/kerpack /hd0/1/Kolibri/kernel.mnt

Shell показал, что всё вроде бы сработало, но нет - файл /hd0/1/Kolibri/kernel.mnt не изменился! Почему? Какая программа это не поддерживает: shell или kerpack?

Author:  Leency [ Thu Oct 23, 2008 2:14 pm ]
Post subject:  Re: Очень функциональный шелл

правильно: /rd/1/kerpack

Author:  DmitrySokolowsky [ Thu Oct 23, 2008 6:42 pm ]
Post subject:  Re: Очень функциональный шелл

Я тут опечатался, так и писал: /rd/1/kerpack. Но не сработало...

Author:  Albom [ Fri Oct 24, 2008 6:48 am ]
Post subject:  Re: Очень функциональный шелл

по-моему, kerpack не принимает параметры, а работает только с ядром на рамдиске. А если и работает, то нужно посмотреть в исходниках с помощью какой ф-ции там происводятся файловые операции (должна быть 70-я). а к shell'у по этому вопросу претензий не должно быть - я всегда после установки нового ядра запускаю kerpack из shell, правда без параметров

Author:  DmitrySokolowsky [ Fri Oct 24, 2008 2:40 pm ]
Post subject:  Re: Очень функциональный шелл

Ну вот, допустим, такая ситуация: я собрал ядро на hd, а скопировать сразу на rd не могу, потому что не хватает места. Приходится лезть в винду и запускать kerpack под эмулятором, потом опять перезагружаться и копировать. И так всегда...

Author:  Heavyiron [ Fri Oct 24, 2008 5:06 pm ]
Post subject:  Re: Очень функциональный шелл

Ну так это вопрос к автору kerpack, а не shell'a.

Author:  diamond [ Tue Oct 28, 2008 3:26 pm ]
Post subject:  Re: Очень функциональный шелл

В последних версиях грохнулось редактирование введённой строки (стрелки влево/вправо, вставка символов в середину строки). Если это из-за того, что для поддержки истории пришлось отказаться от gets, то сообщаю о наличии функции gets2, которая позволяет вызывающей программе делать всё, что ей угодно, при нажатии на "нестандартные" клавиши типа up/down/Tab.
Albom wrote:
Quote:
Это запоминание было и в ДОСе по стрелочке вверх, по табу оно подставляет имя файла.

по-моему не было там запоминания по стрелочке вверх, а только по стрелочке вправо - запоминание последней команды. А таба и поныне нет (по-крайней мере я в 2000 проверил - НЕТУ!!!)

В ДОСе действительно запоминалась только последняя введённая строка, в винде появилась нормальная память введённых команд. А таб уже давно есть, начиная с XP.
Nable wrote:
Исправление простое - вместо printf(&string) писать printf("%s",&string), где string - твоя строка. Да это медленнее и больше, зато надёжнее.

Какие извраты... Есть же функция puts(&string), которая в консольной библиотеке именуется con_write_asciiz(&string).
Quote:
Shell показал, что всё вроде бы сработало, но нет - файл /hd0/1/Kolibri/kernel.mnt не изменился! Почему? Какая программа это не поддерживает: shell или kerpack?

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

Author:  Albom [ Sun Nov 02, 2008 9:10 am ]
Post subject:  Re: Очень функциональный шелл

Quote:
Какие извраты... Есть же функция puts(&string), которая в консольной библиотеке именуется con_write_asciiz(&string)

printf более функциональна, чем puts. так, например, можно обрамить выводимую строку пустыми (printf("\n%s\n", string)) или сделать конкетацию при выводе (printf("%s%s", s1, s2)), а с puts сделать такое сложнее

Author:  diamond [ Sun Nov 02, 2008 1:38 pm ]
Post subject:  Re: Очень функциональный шелл

Quote:
printf более функциональна, чем puts.

Разумеется. Но речь-то шла о том, как заменить конкретный вызов printf(str), который должен просто напечатать строку, а в этом случае вызвать puts таки проще.

Author:  Albom [ Sun Mar 15, 2009 8:13 pm ]
Post subject:  Re: Очень функциональный шелл

не прошло и полгода...
в общем, в коде будут серьёзные изменения. но когда - не знаю.
пока же версия с исправленными ошибками.
работает команда alias, добавлена команда clear.

Attachments:
File comment: Исходники
shell-0.4.1-src.zip [36.9 KiB]
Downloaded 154 times
shell-0.4.1.zip [5.89 KiB]
Downloaded 165 times

Author:  s1n [ Mon Jun 15, 2009 10:57 pm ]
Post subject:  Re: Очень функциональный шелл

Albom,
писать консольные проги для использования в shell можно?? или надо сам shell ковырять?

Author:  Albom [ Tue Jun 16, 2009 7:13 am ]
Post subject:  Re: Очень функциональный шелл

пока нельзя :(
я ещё не определился с механизмом связи такого приложения и shell. надо разбираться в IPC... или воплощать свою идею по поводу специального формата консольных приложений - в виде библиотек coff. вопрос только - как shell должен экспортировать ф-ции ввода/вывода? (да, именно shell!) жду предложений.

Page 3 of 13 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/