14.3.2. Дополнительные замечания по поводу библиотеки shell.rb
14.3.2. Дополнительные замечания по поводу библиотеки shell.rb
Метод transact исполняет блок в контексте вызывающего объекта. Таким образом, допустима следующая сокращенная запись:
sh = Shell.new
sh.transact do
echo("Строка данных") > "somefile.txt"
cat("somefile.txt","otherfile.txt") > "thirdfile"
cat("thirdfile") | tee("file4") > STDOUT
end
Итератор foreach принимает в качестве параметра файл или каталог. Если это файл, он перебирает все его строки, а если каталог — все имена файлов в нем.
sh = Shell.new
# Напечатать все строки файла /tmp/foo.
sh.foreach("/tmp/foo") {|l| puts l }
# Вывести список файлов в каталоге /tmp.
sh.foreach("/tmp") {|f| puts f }
Метод pushdir запоминает текущий каталог, а метод popdir делает последний запомненный каталог текущим. У них есть синонимы pushd и popd. Метод pwd возвращает текущий рабочий каталог, его синонимы — getwd, cwd и dir.
sh = Shell.cd "/home"
puts sh.pwd # /home
sh.pushd "/tmp"
puts sh.pwd # /tmp
sh.popd
puts sh.pwd # /home
Для удобства в класс Shell импортируются методы из различных источников, в том числе из класса File, модуля FileTest и библиотеки ftools.rb. Это избавляет от необходимости выполнять require, include, создавать объекты, квалифицировать вызовы методов и т. д.
sh = Shell.new
flag1 = sh.exist? "myfile" # Проверить существование файла.
sh.delete "somefile" # Удалить файл.
sh.move "/tmp/foo", "/tmp/bar" # Переместить файл.
У библиотеки Shell есть и другие возможности, которые мы здесь не рассматриваем. Дополнительную информацию ищите в документации.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
14.2.2.3. Предостережения по поводу блокировок
14.2.2.3. Предостережения по поводу блокировок Имеется несколько предостережений, о которых нужно знать при блокировках файлов:• Как описано ранее, вспомогательная блокировка является именно этим. Не взаимодействующий процесс может делать все, что хочет, за спиной (так
Комментарии по поводу многоступенчатого конвейера
Комментарии по поводу многоступенчатого конвейера Данная реализация характеризуется некоторыми особенностями, суть которых частично отражена в комментариях, включенных в листинг программы. На эти же особенности обращают ваше внимание и упражнения 10.6, 10.7 и
Комментарии по поводу многопоточных моделей
Комментарии по поводу многопоточных моделей Для описания методов проектирования многопоточных программ используются такие термины, как пул потоков (thread pool), симметричные потоки (symmetric threads) и асимметричная потоковая организация программ (asymmetric threading), а мы при создании
Замечания по поводу безопасности
Замечания по поводу безопасности В том виде, как она здесь представлена, данная клиент-серверная система не является безопасной. Если на вашей системе выполняется сервер и кому-то известен номер порта, через который вы работаете, и имя компьютера, то он может атаковать
Важные замечания по поводу циклов For.. .Next
Важные замечания по поводу циклов For.. .Next Старайтесь, чтобы ваш программный код всегда оставался понятным. Используйте 1 в качестве начального значения для цикла For. . . Next, если только у вас нет серьезных причин выбрать для этого другое число.Такие серьезные причины на
12.1.6. Дополнительные замечания
12.1.6. Дополнительные замечания Перспективы Tk туманны (то же можно сказать и о большинстве программных систем), но в ближайшем будущем он никуда не денется. Текущая версия Ruby/Tk основана на Tk 8.4, но, вероятно, со временем будет обновлена.Нужно еще сказать несколько слов об
12.2.6. Дополнительные замечания
12.2.6. Дополнительные замечания Ruby/GTK2 — это часть проекта Ruby-GNOME2. GNOME — пакет более высокого уровня, основанный на библиотеке GTK+, a Ruby-GNOME2 — набор привязок для библиотек, входящих в состав GNOME.Ruby-GNOME2 включает следующие библиотеки:• Базовые библиотеки. Они включены в пакеты
12.3.6. Дополнительные замечания
12.3.6. Дополнительные замечания Библиотека FOX располагает еще многими виджетами и возможностями, например: деревья, стыкуемые панели инструментов, всплывающие подсказки, строки состояния и страницы с вкладками. К числу более сложных средств следует отнести
12.4.6. Дополнительные замечания
12.4.6. Дополнительные замечания Поскольку библиотека Qt написана на C++, неизбежны некоторые идиомы, отражающие ограничения этого языка. Иногда перевод на Ruby не выглядит на 100% естественным, поскольку в Ruby аналогичные вещи делаются несколько иначе. Поэтому в ряде случаев
14.3.1. Использование библиотеки Shell для перенаправления ввода/вывода
14.3.1. Использование библиотеки Shell для перенаправления ввода/вывода В классе Shell для создания объектов есть два метода: new и cd. Первый создает объект, ассоциированный с текущим каталогом, второй — объект, для которого рабочим будет указанный каталог.require "shell"sh1 =
19.3.4. Дополнительные инструменты и библиотеки
19.3.4. Дополнительные инструменты и библиотеки Неизбежным было появление внешних инструментов для работы с Rails. Например, в редактор TextMate встроена неплохая поддержка (синтаксическая подсветка, автоматическое дописывание кода и т.д.). Этот редактор, наверное, самый
Замечания по поводу платформ STL от Microsoft
Замечания по поводу платформ STL от Microsoft В начале книги я ввел термин «платформа STL», означающий комбинацию конкретного компилятора и конкретной реализации STL. Различие между компилятором и библиотекой особенно важно при использовании компилятора Microsoft Visual С++ версий 6 и
Соображения по поводу эффективности
Соображения по поводу эффективности Если бы это было все, что можно сказать о связных списках, то глава оказалась бы очень короткой. До сих пор была представлена только реализация класса, инкапсулирующего односвязный список. Но перед написанием класса связного списка
Дополнительные программы и библиотеки
Дополнительные программы и библиотеки Многие фирмы выпускают дополнительные программы и библиотеки, работающие в среде ArchiCAD и расширяющие ее возможности. К таким дополнениям относятся следующие.• Art*lantis Render – программа фотореалистичной визуализации, анимации и
14.5.6. Одно замечание по поводу программы-оболочки
14.5.6. Одно замечание по поводу программы-оболочки В некоторых местах нашей программы-оболочки обнаруживается недостаток той "декларативной ясности", которая так характерна для программ, написанных на Прологе. Причина состоит в том, что нам пришлось предусмотреть в этой
Фултон Хэл
Просмотр ограничен
Смотрите доступные для ознакомления главы 👉