Очень функциональный шелл
-
Шелл нужен, многие очень приыкли к комндной строке. Да и скрипты без шелла писать трудно. Пиши еще!
А как у него с поддержкой папок? Можно, например, использовать пути к папкам на жёстком диске?
с папками должно быть всё в порядке, так как используется 70-я ф-ция. пробовал перемещаться по каталогам жёсткого диска (особое внимание обратил на папку system32 - заходит и выдаёт список файлов без проблем), а также cd и dvd - тоже проблем не было.
2 all
обнаружил, что не работает команда alias хотелось бы узнать - у кого работает, а у кого нет?
2 all
обнаружил, что не работает команда alias хотелось бы узнать - у кого работает, а у кого нет?
Дал команду:
Shell показал, что всё вроде бы сработало, но нет - файл /hd0/1/Kolibri/kernel.mnt не изменился! Почему? Какая программа это не поддерживает: shell или kerpack?
Code: Select all
/rd/kerpack /hd0/1/Kolibri/kernel.mnt
правильно: /rd/1/kerpack
Из хаоса в космос
Я тут опечатался, так и писал: /rd/1/kerpack. Но не сработало...
по-моему, kerpack не принимает параметры, а работает только с ядром на рамдиске. А если и работает, то нужно посмотреть в исходниках с помощью какой ф-ции там происводятся файловые операции (должна быть 70-я). а к shell'у по этому вопросу претензий не должно быть - я всегда после установки нового ядра запускаю kerpack из shell, правда без параметров
Ну вот, допустим, такая ситуация: я собрал ядро на hd, а скопировать сразу на rd не могу, потому что не хватает места. Приходится лезть в винду и запускать kerpack под эмулятором, потом опять перезагружаться и копировать. И так всегда...
Ну так это вопрос к автору kerpack, а не shell'a.
В последних версиях грохнулось редактирование введённой строки (стрелки влево/вправо, вставка символов в середину строки). Если это из-за того, что для поддержки истории пришлось отказаться от gets, то сообщаю о наличии функции gets2, которая позволяет вызывающей программе делать всё, что ей угодно, при нажатии на "нестандартные" клавиши типа up/down/Tab.
В ДОСе действительно запоминалась только последняя введённая строка, в винде появилась нормальная память введённых команд. А таб уже давно есть, начиная с XP.Albom wrote:по-моему не было там запоминания по стрелочке вверх, а только по стрелочке вправо - запоминание последней команды. А таба и поныне нет (по-крайней мере я в 2000 проверил - НЕТУ!!!)Это запоминание было и в ДОСе по стрелочке вверх, по табу оно подставляет имя файла.
Какие извраты... Есть же функция puts(&string), которая в консольной библиотеке именуется con_write_asciiz(&string).Nable wrote:Исправление простое - вместо printf(&string) писать printf("%s",&string), где string - твоя строка. Да это медленнее и больше, зато надёжнее.
Этого не поддерживает kerpack, которая задумывалась как простая программа, которая сжимает ядро на рамдиске без всяких дополнительных наворотов.Shell показал, что всё вроде бы сработало, но нет - файл /hd0/1/Kolibri/kernel.mnt не изменился! Почему? Какая программа это не поддерживает: shell или kerpack?
Ушёл к умным, знающим и культурным людям.
printf более функциональна, чем puts. так, например, можно обрамить выводимую строку пустыми (printf("\n%s\n", string)) или сделать конкетацию при выводе (printf("%s%s", s1, s2)), а с puts сделать такое сложнееКакие извраты... Есть же функция puts(&string), которая в консольной библиотеке именуется con_write_asciiz(&string)
Разумеется. Но речь-то шла о том, как заменить конкретный вызов printf(str), который должен просто напечатать строку, а в этом случае вызвать puts таки проще.printf более функциональна, чем puts.
не прошло и полгода...
в общем, в коде будут серьёзные изменения. но когда - не знаю.
пока же версия с исправленными ошибками.
работает команда alias, добавлена команда clear.
в общем, в коде будут серьёзные изменения. но когда - не знаю.
пока же версия с исправленными ошибками.
работает команда alias, добавлена команда clear.
- Attachments
-
-
shell-0.4.1-src.zip (36.9 KiB)
- Исходники
Downloaded 292 times
-
shell-0.4.1.zip (5.89 KiB)Downloaded 311 times
-
Albom,
писать консольные проги для использования в shell можно?? или надо сам shell ковырять?
писать консольные проги для использования в shell можно?? или надо сам shell ковырять?
пока нельзя
я ещё не определился с механизмом связи такого приложения и shell. надо разбираться в IPC... или воплощать свою идею по поводу специального формата консольных приложений - в виде библиотек coff. вопрос только - как shell должен экспортировать ф-ции ввода/вывода? (да, именно shell!) жду предложений.
я ещё не определился с механизмом связи такого приложения и shell. надо разбираться в IPC... или воплощать свою идею по поводу специального формата консольных приложений - в виде библиотек coff. вопрос только - как shell должен экспортировать ф-ции ввода/вывода? (да, именно shell!) жду предложений.
Who is online
Users browsing this forum: Ahrefs [Bot], Google [Bot] and 12 guests