aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-12-20 09:39:50 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-12-20 09:40:06 +0900
commitfac60be324260cd834478fedf934e59b97935dbf (patch)
treebc50920a20e0772ea0487cd8dd20dfe4cbe24063
parentdb166290088fb7d39d01f68b9860253893d4f1a7 (diff)
downloadruby-fac60be324260cd834478fedf934e59b97935dbf.tar.gz
shell.rb is no longer bundled [ci skip]
-rw-r--r--doc/shell.rd.ja335
1 files changed, 0 insertions, 335 deletions
diff --git a/doc/shell.rd.ja b/doc/shell.rd.ja
deleted file mode 100644
index a9507fe92a..0000000000
--- a/doc/shell.rd.ja
+++ /dev/null
@@ -1,335 +0,0 @@
- -- shell.rb
- $Release Version: 0.6.0 $
- $Revision$
- by Keiju ISHITSUKA(keiju@ishitsuka.com)
-
-=begin
-
-= 目的
-
-ruby上でsh/cshのようにコマンドの実行及びフィルタリングを手軽に行う.
-sh/cshの制御文はrubyの機能を用いて実現する.
-
-= 主なクラス一覧
-
-== Shell
-
-Shellオブジェクトはカレントディレクトリを持ち, コマンド実行はそこからの
-相対パスになります.
-
---- Shell#cwd
---- Shell#dir
---- Shell#getwd
---- Shell#pwd
-
- カレントディレクトリを返す。
-
---- Shell#system_path
-
- コマンドサーチパスの配列を返す。
-
---- Shell#umask
-
- umaskを返す。
-
-== Filter
-
-コマンドの実行結果はすべてFilterとしてかえります. Enumerableをincludeし
-ています.
-
-= 主なメソッド一覧
-
-== コマンド定義
-
-OS上のコマンドを実行するにはまず, Shellのメソッドとして定義します.
-
-注) コマンドを定義しなくとも直接実行できるShell#systemコマンドもあります.
-
---- Shell.def_system_command(command, path = command)
-
- Shellのメソッドとしてcommandを登録します.
-
- 例)
- Shell.def_system_command "ls"
- ls を定義
-
- Shell.def_system_command "sys_sort", "sort"
- sortコマンドをsys_sortとして定義
-
---- Shell.undef_system_command(command)
-
- commandを削除します.
-
---- Shell.alias_command(ali, command, *opts) {...}
-
- commandのaliasをします.
-
- 例)
- Shell.alias_command "lsC", "ls", "-CBF", "--show-control-chars"
- Shell.alias_command("lsC", "ls"){|*opts| ["-CBF", "--show-control-chars", *opts]}
-
---- Shell.unalias_command(ali)
-
- commandのaliasを削除します.
-
---- Shell.install_system_commands(pre = "sys_")
-
- system_path上にある全ての実行可能ファイルをShellに定義する. メソッ
- ド名は元のファイル名の頭にpreをつけたものとなる.
-
-== 生成
-
---- Shell.new
-
- プロセスのカレントディレクトリをカレントディレクトリとするShellオ
- ブジェクトを生成します.
-
---- Shell.cd(path)
-
- pathをカレントディレクトリとするShellオブジェクトを生成します.
-
-== プロセス管理
-
---- Shell#jobs
-
- スケジューリングされているjobの一覧を返す.
-
---- Shell#kill sig, job
-
- jobにシグナルsigを送る
-
-== カレントディレクトリ操作
-
---- Shell#cd(path, &block)
---- Shell#chdir
-
- カレントディレクトリをpathにする. イテレータとして呼ばれたときには
- ブロック実行中のみカレントディレクトリを変更する.
-
---- Shell#pushd(path = nil, &block)
---- Shell#pushdir
-
- カレントディレクトリをディレクトリスタックにつみ, カレントディレク
- トリをpathにする. pathが省略されたときには, カレントディレクトリと
- ディレクトリスタックのトップを交換する. イテレータとして呼ばれたと
- きには, ブロック実行中のみpushdする.
-
---- Shell#popd
---- Shell#popdir
-
- ディレクトリスタックからポップし, それをカレントディレクトリにする.
-
-== ファイル/ディレクトリ操作
-
---- Shell#foreach(path = nil, &block)
-
- pathがファイルなら, File#foreach
- pathがディレクトリなら, Dir#foreach
-
---- Shell#open(path, mode)
-
- pathがファイルなら, File#open
- pathがディレクトリなら, Dir#open
-
---- Shell#unlink(path)
-
- pathがファイルなら, File#unlink
- pathがディレクトリなら, Dir#unlink
-
---- Shell#test(command, file1, file2)
---- Shell#[command, file1, file2]
-
- ファイルテスト関数testと同じ.
- 例)
- sh[?e, "foo"]
- sh[:e, "foo"]
- sh["e", "foo"]
- sh[:exists?, "foo"]
- sh["exists?", "foo"]
-
---- Shell#mkdir(*path)
-
- Dir.mkdirと同じ(複数可)
-
---- Shell#rmdir(*path)
-
- Dir.rmdirと同じ(複数可)
-
-== コマンド実行
-
---- System#system(command, *opts)
-
- commandを実行する.
- 例)
- print sh.system("ls", "-l")
- sh.system("ls", "-l") | sh.head > STDOUT
-
---- System#rehash
-
- リハッシュする
-
---- Shell#transact &block
-
- ブロック中ではshellをselfとして実行する.
- 例)
- sh.transact{system("ls", "-l") | head > STDOUT}
-
---- Shell#out(dev = STDOUT, &block)
-
- transactを呼び出しその結果をdevに出力する.
-
-== 内部コマンド
-
---- Shell#echo(*strings)
---- Shell#cat(*files)
---- Shell#glob(patten)
---- Shell#tee(file)
-
- これらは実行すると, それらを内容とするFilterオブジェクトを返します.
-
---- Filter#each &block
-
- フィルタの一行ずつをblockに渡す.
-
---- Filter#<(src)
-
- srcをフィルタの入力とする. srcが, 文字列ならばファイルを, IOであれ
- ばそれをそのまま入力とする.
-
---- Filter#>(to)
-
- srcをフィルタの出力とする. toが, 文字列ならばファイルに, IOであれ
- ばそれをそのまま出力とする.
-
---- Filter#>>(to)
-
- srcをフィルタに追加する. toが, 文字列ならばファイルに, IOであれば
- それをそのまま出力とする.
-
---- Filter#|(filter)
-
- パイプ結合
-
---- Filter#+(filter)
-
- filter1 + filter2 は filter1の出力の後, filter2の出力を行う.
-
---- Filter#to_a
---- Filter#to_s
-
-== 組込みコマンド
-
---- Shell#atime(file)
---- Shell#basename(file, *opt)
---- Shell#chmod(mode, *files)
---- Shell#chown(owner, group, *file)
---- Shell#ctime(file)
---- Shell#delete(*file)
---- Shell#dirname(file)
---- Shell#ftype(file)
---- Shell#join(*file)
---- Shell#link(file_from, file_to)
---- Shell#lstat(file)
---- Shell#mtime(file)
---- Shell#readlink(file)
---- Shell#rename(file_from, file_to)
---- Shell#split(file)
---- Shell#stat(file)
---- Shell#symlink(file_from, file_to)
---- Shell#truncate(file, length)
---- Shell#utime(atime, mtime, *file)
-
- これらはFileクラスにある同名のクラスメソッドと同じです.
-
---- Shell#blockdev?(file)
---- Shell#chardev?(file)
---- Shell#directory?(file)
---- Shell#executable?(file)
---- Shell#executable_real?(file)
---- Shell#exist?(file)/Shell#exists?(file)
---- Shell#file?(file)
---- Shell#grpowned?(file)
---- Shell#owned?(file)
---- Shell#pipe?(file)
---- Shell#readable?(file)
---- Shell#readable_real?(file)
---- Shell#setgid?(file)
---- Shell#setuid?(file)
---- Shell#size(file)/Shell#size?(file)
---- Shell#socket?(file)
---- Shell#sticky?(file)
---- Shell#symlink?(file)
---- Shell#writable?(file)
---- Shell#writable_real?(file)
---- Shell#zero?(file)
-
- これらはFileTestクラスにある同名のクラスメソッドと同じです.
-
---- Shell#syscopy(filename_from, filename_to)
---- Shell#copy(filename_from, filename_to)
---- Shell#move(filename_from, filename_to)
---- Shell#compare(filename_from, filename_to)
---- Shell#safe_unlink(*filenames)
---- Shell#makedirs(*filenames)
---- Shell#install(filename_from, filename_to, mode)
-
- これらはFileToolsクラスにある同名のクラスメソッドと同じです.
-
- その他, 以下のものがエイリアスされています.
-
---- Shell#cmp <- Shell#compare
---- Shell#mv <- Shell#move
---- Shell#cp <- Shell#copy
---- Shell#rm_f <- Shell#safe_unlink
---- Shell#mkpath <- Shell#makedirs
-
-= サンプル
-
-== ex1
-
- sh = Shell.cd("/tmp")
- sh.mkdir "shell-test-1" unless sh.exists?("shell-test-1")
- sh.cd("shell-test-1")
- for dir in ["dir1", "dir3", "dir5"]
- if !sh.exists?(dir)
- sh.mkdir dir
- sh.cd(dir) do
- f = sh.open("tmpFile", "w")
- f.print "TEST\n"
- f.close
- end
- print sh.pwd
- end
- end
-
-== ex2
-
- sh = Shell.cd("/tmp")
- sh.transact do
- mkdir "shell-test-1" unless exists?("shell-test-1")
- cd("shell-test-1")
- for dir in ["dir1", "dir3", "dir5"]
- if !exists?(dir)
- mkdir dir
- cd(dir) do
- f = open("tmpFile", "w")
- f.print "TEST\n"
- f.close
- end
- print pwd
- end
- end
- end
-
-== ex3
-
- sh.cat("/etc/printcap") | sh.tee("tee1") > "tee2"
- (sh.cat < "/etc/printcap") | sh.tee("tee11") > "tee12"
- sh.cat("/etc/printcap") | sh.tee("tee1") >> "tee2"
- (sh.cat < "/etc/printcap") | sh.tee("tee11") >> "tee12"
-
-== ex4
-
- print sh.cat("/etc/passwd").head.collect{|l| l =~ /keiju/}
-
-=end