Page 3 of 14

Re: Очень функциональный шелл

Posted: Sun Aug 17, 2008 4:17 am
by barsuk
Шелл нужен, многие очень приыкли к комндной строке. Да и скрипты без шелла писать трудно. Пиши еще! ;)

Re: Очень функциональный шелл

Posted: Fri Aug 29, 2008 11:15 pm
by DmitrySokolowsky
А как у него с поддержкой папок? Можно, например, использовать пути к папкам на жёстком диске?

Re: Очень функциональный шелл

Posted: Sat Aug 30, 2008 6:25 am
by Albom
с папками должно быть всё в порядке, так как используется 70-я ф-ция. пробовал перемещаться по каталогам жёсткого диска (особое внимание обратил на папку system32 - заходит и выдаёт список файлов без проблем), а также cd и dvd - тоже проблем не было.


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

Re: Очень функциональный шелл

Posted: Thu Oct 23, 2008 1:08 pm
by DmitrySokolowsky
Дал команду:

Code: Select all

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

Re: Очень функциональный шелл

Posted: Thu Oct 23, 2008 2:14 pm
by Leency
правильно: /rd/1/kerpack

Re: Очень функциональный шелл

Posted: Thu Oct 23, 2008 6:42 pm
by DmitrySokolowsky
Я тут опечатался, так и писал: /rd/1/kerpack. Но не сработало...

Re: Очень функциональный шелл

Posted: Fri Oct 24, 2008 6:48 am
by Albom
по-моему, kerpack не принимает параметры, а работает только с ядром на рамдиске. А если и работает, то нужно посмотреть в исходниках с помощью какой ф-ции там происводятся файловые операции (должна быть 70-я). а к shell'у по этому вопросу претензий не должно быть - я всегда после установки нового ядра запускаю kerpack из shell, правда без параметров

Re: Очень функциональный шелл

Posted: Fri Oct 24, 2008 2:40 pm
by DmitrySokolowsky
Ну вот, допустим, такая ситуация: я собрал ядро на hd, а скопировать сразу на rd не могу, потому что не хватает места. Приходится лезть в винду и запускать kerpack под эмулятором, потом опять перезагружаться и копировать. И так всегда...

Re: Очень функциональный шелл

Posted: Fri Oct 24, 2008 5:06 pm
by Heavyiron
Ну так это вопрос к автору kerpack, а не shell'a.

Re: Очень функциональный шелл

Posted: Tue Oct 28, 2008 3:26 pm
by diamond
В последних версиях грохнулось редактирование введённой строки (стрелки влево/вправо, вставка символов в середину строки). Если это из-за того, что для поддержки истории пришлось отказаться от gets, то сообщаю о наличии функции gets2, которая позволяет вызывающей программе делать всё, что ей угодно, при нажатии на "нестандартные" клавиши типа up/down/Tab.
Albom wrote:
Это запоминание было и в ДОСе по стрелочке вверх, по табу оно подставляет имя файла.
по-моему не было там запоминания по стрелочке вверх, а только по стрелочке вправо - запоминание последней команды. А таба и поныне нет (по-крайней мере я в 2000 проверил - НЕТУ!!!)
В ДОСе действительно запоминалась только последняя введённая строка, в винде появилась нормальная память введённых команд. А таб уже давно есть, начиная с XP.
Nable wrote:Исправление простое - вместо printf(&string) писать printf("%s",&string), где string - твоя строка. Да это медленнее и больше, зато надёжнее.
Какие извраты... Есть же функция puts(&string), которая в консольной библиотеке именуется con_write_asciiz(&string).
Shell показал, что всё вроде бы сработало, но нет - файл /hd0/1/Kolibri/kernel.mnt не изменился! Почему? Какая программа это не поддерживает: shell или kerpack?
Этого не поддерживает kerpack, которая задумывалась как простая программа, которая сжимает ядро на рамдиске без всяких дополнительных наворотов.

Re: Очень функциональный шелл

Posted: Sun Nov 02, 2008 9:10 am
by Albom
Какие извраты... Есть же функция puts(&string), которая в консольной библиотеке именуется con_write_asciiz(&string)
printf более функциональна, чем puts. так, например, можно обрамить выводимую строку пустыми (printf("\n%s\n", string)) или сделать конкетацию при выводе (printf("%s%s", s1, s2)), а с puts сделать такое сложнее

Re: Очень функциональный шелл

Posted: Sun Nov 02, 2008 1:38 pm
by diamond
printf более функциональна, чем puts.
Разумеется. Но речь-то шла о том, как заменить конкретный вызов printf(str), который должен просто напечатать строку, а в этом случае вызвать puts таки проще.

Re: Очень функциональный шелл

Posted: Sun Mar 15, 2009 8:13 pm
by Albom
не прошло и полгода...
в общем, в коде будут серьёзные изменения. но когда - не знаю.
пока же версия с исправленными ошибками.
работает команда alias, добавлена команда clear.

Re: Очень функциональный шелл

Posted: Mon Jun 15, 2009 10:57 pm
by s1n
Albom,
писать консольные проги для использования в shell можно?? или надо сам shell ковырять?

Re: Очень функциональный шелл

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