14.3.2. Дополнительные замечания по поводу библиотеки shell.rb

We use cookies. Read the Privacy and Cookie Policy

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 есть и другие возможности, которые мы здесь не рассматриваем. Дополнительную информацию ищите в документации.

Данный текст является ознакомительным фрагментом.