るりまサーチ (Ruby 2.2.0)

最速Rubyリファレンスマニュアル検索!
57件ヒット [1-57件を表示] (0.075秒)

別のキーワード

  1. shell/builtin-command new
  2. shell/builtin-command each
  3. rubygems/command command
  4. irb/extend-command def_extend_command
  5. irb/extend-command install_extend_commands

検索結果

DRb::ExtServManager.command -> { String => String|[String] } (54325.0)

サービスを起動するためのコマンドを指定するための Hash を 返します。

サービスを起動するためのコマンドを指定するための Hash を
返します。

Hash のキーがサービス名で、値がそのサービスを起動するためのコマンドです。
この Hash を変更することでサービスを定義します。
DRb::ExtServManager.command= で Hash 自体を
変更することでも同じことができます。

コマンドは文字列、もしくは文字列の配列で指定します。
文字列で指定した場合は Kernel.#spawn で
プロセスを起動する際に shell 経由で起動されます。
文字列の配列で指定すると shell を経由せずに起動されます。

Shell::CommandProcessor.def_system_command(command, path = command) -> () (27967.0)

@todo

@todo

与えられたコマンドをメソッドとして定義します。

@param command 定義したいコマンドを指定します。

@param path command のパスを指定します。省略すると環境変数 PATH から command を探します。

Shell::CommandProcessor.alias_command(alias, command, *opts) -> self (27634.0)

@todo

@todo

@param alias エイリアスの名前を指定します。

@param command コマンド名を指定します。

@param opts コマンドに与えるオプションを指定します。

@raise SyntaxError コマンドのエイリアス作成に失敗した時に発生します。

Shell::CommandProcessor.alias_command(alias, command, *opts) { ... } -> self (27634.0)

@todo

@todo

@param alias エイリアスの名前を指定します。

@param command コマンド名を指定します。

@param opts コマンドに与えるオプションを指定します。

@raise SyntaxError コマンドのエイリアス作成に失敗した時に発生します。

Shell::CommandProcessor.undef_system_command(command) -> self (27628.0)

与えられたコマンドを削除します。

与えられたコマンドを削除します。

@param command 削除したいコマンド名を指定します。

絞り込み条件を変える

Shell::CommandProcessor.def_builtin_commands(delegation_class, commands_specs) -> () (27604.0)

@todo

@todo

@param delegation_class 処理を委譲したいクラスかモジュールを指定します。

@param commands_specs コマンドの仕様を文字列の配列で指定します。
[[コマンド名, [引数1, 引数2, ...]], ...]

IRB::ExtendCommandBundle.install_extend_commands -> object (27322.0)

定義済みの拡張を読み込みます。

定義済みの拡張を読み込みます。

irb で以下のメソッドが利用できるようになります。(それぞれ 1 つだけ抜粋)

* irb_current_working_workspace
* irb_change_workspace
* irb_workspaces
* irb_push_workspace
* irb_pop_workspace
* irb_load
* irb_require
* irb_source
* irb
* irb_jobs
* irb_fg
* irb_kill
* irb_help

irb/extend-command が requir...

IRB::ExtendCommandBundle.def_extend_command(cmd_name, cmd_class, load_file = nil, *aliases) -> object (27307.0)

irb に cmd_name で指定したメソッドが実行できるように拡張します。

irb に cmd_name で指定したメソッドが実行できるように拡張します。

@param cmd_name メソッド名を Symbol か文字列で指定します。
cmd_class で指定するクラスの execute メソッドとして定
義してある必要があります。

@param cmd_class 指定した拡張が定義されたクラス名を Symbol、
String、Class のいずれかで指定します。
なお、このクラスは IRB::ExtendCommand ...

Shell::CommandProcessor.add_delegate_command_to_shell(id) (27307.0)

@todo

@todo

Shell 自体を初期化する時に呼び出されるメソッドです。
ユーザが使用することはありません。

@param id メソッド名を指定します。

Shell::CommandProcessor.unalias_command(alias) -> self (27307.0)

エイリアスを削除します。

エイリアスを削除します。

@param alias 削除したいエイリアスを指定します。

絞り込み条件を変える

Shell::CommandProcessor.install_builtin_commands -> () (27304.0)

ビルトインコマンドを定義します。

ビルトインコマンドを定義します。

Shell::CommandProcessor.install_system_commands(prefix = "sys_") -> () (27304.0)

全てのシステムコマンドをメソッドとして定義します。

全てのシステムコマンドをメソッドとして定義します。

既に定義されているコマンドを再定義することはありません。
デフォルトでは全てのコマンドに "sys_" というプレフィクスが付きます。
また、メソッド名として使用できない文字は全て "_" に置換してメソッドを定義します。
このメソッドの実行中に発生した例外は単に無視されます。

@param prefix プレフィクスを指定します。

Shell.def_system_command(command, path = command) -> nil (19051.0)

Shell のメソッドとして command を登録します.

Shell のメソッドとして command を登録します.

OS上のコマンドを実行するにはまず, Shellのメソッドとして定義します.
注) コマンドを定義しなくとも直接実行できる Shell#system コマンドもあります.

@param command Shell のメソッドとして定義するコマンドを文字列で指定します。

@param path command のパスを指定します。
指定しない場合はcommand と同じになります。

例)
require 'shell'
Shell.def_system_command "ls"
# ls ...

Shell.undef_system_command(command) -> Shell::CommandProcessor (19012.0)

commandを削除します.

commandを削除します.

@param command 削除するコマンドの文字列を指定します。

動作例:
require 'shell'
Shell.def_system_command("ls")
# ls を定義
Shell.undef_system_command("ls")
# ls を 削除

sh = Shell.new
begin
sh.transact {
ls("-l").each {|l|
puts l
}
}
rescue NameError => err
puts ...

Shell.alias_command(alias, command, *opts) {...} -> self (18748.0)

コマンドの別名(エイリアス)を作成します。 コマンドが無い場合は、Shell.def_system_command などであらかじめ作成します.

コマンドの別名(エイリアス)を作成します。
コマンドが無い場合は、Shell.def_system_command などであらかじめ作成します.

@param alias エイリアスの名前を文字列で指定します.

@param command コマンド名を文字列で指定します.

@param opts command で指定したコマンドのオプションを指定します.

使用例: ls -la | sort -k 5 のような例。

require 'shell'
Shell.def_system_command("ls")
Shell.alias_command("lsla", "...

絞り込み条件を変える

Shell.unalias_command(alias) -> () (18445.0)

commandのaliasを削除します.

commandのaliasを削除します.

@param alias 削除したいエイリアスの名前を文字列で指定します。

@raise NameError alias で指定したコマンドが無い場合に発生します。

使用例: ls -la | sort -k 5 のような例。
require 'shell'
Shell.def_system_command("ls")
Shell.alias_command("lsla", "ls", "-a", "-l")
Shell.def_system_command("sort")
sh = Shell.new
sh.trans...

IRB::ContextExtender.install_extend_commands -> object (18340.0)

定義済みの拡張を読み込みます。

定義済みの拡張を読み込みます。

IRB::Context で以下のメソッドが利用できるようになります。

* eval_history=
* use_tracer=
* math_mode=
* use_loader=
* save_history=

irb/extend-command が require された時にライブラリ内部で自動的
に実行されます。

@see IRB::ContextExtender.def_extend_command

DRb::ExtServManager.command=(cmd) (18325.0)

サービスを起動するためのコマンドを指定するための Hash を 設定します。

サービスを起動するためのコマンドを指定するための Hash を
設定します。

@param cmd コマンドを設定した Hash
@see DRb::ExtServManager.command

IRB::ContextExtender.def_extend_command(cmd_name, load_file, *aliases) -> object (18307.0)

IRB::Context に cmd_name で指定したメソッドが実行できるように拡張 します。

IRB::Context に cmd_name で指定したメソッドが実行できるように拡張
します。

@param cmd_name メソッド名を Symbol で指定します。
IRB::Context クラスのインスタンスメソッドとして定
義してある必要があります。

@param load_file cmd_name で指定したメソッドが定義されたファイル名を指
定します。このファイルは自動的に require されます。

@param aliases cmd_name の別名を Symb...

FileUtils.commands -> Array (18304.0)

何らかのオプションを持つメソッド名の配列を返します。

何らかのオプションを持つメソッド名の配列を返します。

//emlist[][ruby]{
require 'fileutils'
FileUtils.commands # => ["chmod", "cp", "cp_r", "install", ...]
//}

絞り込み条件を変える

Shell.install_system_commands(pre = "sys_") -> () (18304.0)

system_path上にある全ての実行可能ファイルをShellに定義する. メソッ ド名は元のファイル名の頭にpreをつけたものとなる.

system_path上にある全ての実行可能ファイルをShellに定義する. メソッ
ド名は元のファイル名の頭にpreをつけたものとなる.

@param pre Shellに定義するメソッド名の先頭に付加される文字列を指定します。

使用例: ls -l | head -n 5 のような例。

require 'shell'
Shell.install_system_commands
sh = Shell.new
sh.verbose = false
sh.transact {
(sys_ls("-l") | sys_head("-n 5")).each {|l...

Shell::SystemCommand.new(sh, command, *opts) (9325.0)

@todo

@todo

@param sh

@param command

@param opts

Gem::CommandManager.instance -> Gem::CommandManager (9304.0)

自身をインスタンス化します。

自身をインスタンス化します。

IRB::ExtendCommand::Nop.new(conf) -> IRB::ExtendCommand::Nop (9304.0)

自身を初期化します。ユーザが直接使用するものではありません。

自身を初期化します。ユーザが直接使用するものではありません。

@param conf IRB::Context オブジェクトを指定します。

IRB::ExtendCommandBundle.extend_object(obj) -> IRB::ExtendCommandBundle (9304.0)

IRB::ExtendCommandBundle で定義済みの拡張に指定されたエイリアスを obj に定義します。

IRB::ExtendCommandBundle で定義済みの拡張に指定されたエイリアスを
obj に定義します。

@param obj IRB::ExtendCommandBundle を extend したオブジェクト

絞り込み条件を変える

Shell::CommandProcessor.alias_map -> Hash (9052.0)

Shell::CommandProcessor.alias_command で定義したエイリアスの一覧を返します。

Shell::CommandProcessor.alias_command で定義したエイリアスの一覧を返します。

Gem::Command.add_common_option(*args) {|value, options| ... } (9004.0)

全てのコマンドに共通するオプションを登録するためのメソッドです。

全てのコマンドに共通するオプションを登録するためのメソッドです。

@param args 追加するオプションの情報を指定します。

Gem::Command.add_specific_extra_args(cmd, args) (9004.0)

与えられたコマンドに対応する追加の引数を追加します。

与えられたコマンドに対応する追加の引数を追加します。

@param cmd コマンド名を指定します。

@param args 追加の引数を配列か、空白で区切った文字列で指定します。

Gem::Command.build_args -> Array (9004.0)

Gem をビルドするときに使用するパラメータを返します。

Gem をビルドするときに使用するパラメータを返します。

Gem::Command.build_args=(value) (9004.0)

Gem をビルドするときに使用するパラメータをセットします。

Gem をビルドするときに使用するパラメータをセットします。

@param value Gem をビルドするときに使用するパラメータを指定します。

絞り込み条件を変える

Gem::Command.common_options -> Array (9004.0)

共通の引数を返します。

共通の引数を返します。

Gem::Command.extra_args -> Array (9004.0)

追加の引数を返します。

追加の引数を返します。

Gem::Command.extra_args=(value) (9004.0)

追加の引数をセットします。

追加の引数をセットします。

@param value 配列を指定します。

Gem::Command.specific_extra_args(cmd) -> Array (9004.0)

与えられたコマンドに対応する追加の引数を返します。

与えられたコマンドに対応する追加の引数を返します。

特別な追加引数はプログラムの開始時に Gem の設定ファイルから読み込まれます。

@param cmd コマンド名を指定します。

Gem::Command.specific_extra_args_hash -> Hash (9004.0)

特別な追加引数へのアクセスを提供します。

特別な追加引数へのアクセスを提供します。

絞り込み条件を変える

IRB::ExtendCommand::Nop.execute(conf, *opts) -> () (9004.0)

コマンドを実行します。ユーザが直接使用するものではありません。

コマンドを実行します。ユーザが直接使用するものではありません。

@param conf IRB::Context オブジェクトを指定します。

@param opts irb 中でコマンドに渡す引数を指定します。

IRB::ExtendCommandBundle.irb_original_method_name(method_name) -> String (9004.0)

method_name で指定したメソッドの irb 中でのエイリアスを返します。ライブ ラリ内部で使用します。

method_name で指定したメソッドの irb 中でのエイリアスを返します。ライブ
ラリ内部で使用します。

@param method_name メソッド名を Symbol か文字列で指定します。

@see IRB::ExtendCommandBundle#install_alias_method

Shell::CommandProcessor.initialize -> () (9004.0)

@todo

@todo

このクラスを初期化します。

Shell::CommandProcessor.method_added(id) (9004.0)

@todo このクラスに定義されたメソッドを Shell にも定義するためのフックです。

@todo
このクラスに定義されたメソッドを Shell にも定義するためのフックです。

@param id メソッド名を指定します。

Shell::CommandProcessor.new(shell) (9004.0)

@todo

@todo

絞り込み条件を変える

Shell::CommandProcessor.run_config -> () (9004.0)

ユーザのホームディレクトリに "~/.rb_shell" というファイルが存在すれば、それを Kernel.#load します。

ユーザのホームディレクトリに "~/.rb_shell" というファイルが存在すれば、それを Kernel.#load します。

存在しない時は何もしません。

Process.exec(command, *args) -> () (415.0)

カレントプロセスを与えられた外部コマンドで置き換えます。

カレントプロセスを与えられた外部コマンドで置き換えます。


=== 引数の解釈

引数が一つだけ与えられた場合、command が shell のメタ文字
//emlist{
* ? {} [] <> () ~ & | \ $ ; ' ` " \n
//}
を含む場合、shell 経由で実行されます。
そうでなければインタプリタから直接実行されます。

引数が複数与えられた場合、第 2 引数以降は command に直接渡され、
インタプリタから直接実行されます。

第 1 引数が 2 要素の配列の場合、第 1 要素の文字列が実際に起動する
プログラムのパスで、第 2 要素が「みせかけ...

IO.popen(env = {}, command, mode = "r", opt={}) -> IO (328.0)

サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"

サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。

...

IO.popen(env = {}, command, mode = "r", opt={}) {|f| ... } -> object (328.0)

サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"

サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。

...

Gem::Ext::Builder.run(command, results) (325.0)

@todo

@todo

与えられたコマンドを実行します。

@param command 実行するコマンドを文字列で指定します。

@param results 結果を入れるための配列です。この変数は破壊的に変更されます。

@raise Gem::InstallError コマンドの実行に失敗した場合に発生します。

絞り込み条件を変える

IO.popen([env = {}, [cmdname, arg0], *args, execopt={}], mode = "r", opt={}) -> IO (28.0)

サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"

サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。

...

IO.popen([env = {}, [cmdname, arg0], *args, execopt={}], mode = "r", opt={}) {|f| ... } -> object (28.0)

サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"

サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。

...

IO.popen([env = {}, cmdname, *args, execopt={}], mode = "r", opt={}) -> IO (28.0)

サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"

サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。

...

IO.popen([env = {}, cmdname, *args, execopt={}], mode = "r", opt={}) {|f| ... } -> object (28.0)

サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"

サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。

...

IO.popen(env = {}, [[cmdname, arg0], *args, execopt={}], mode = "r", opt={}) -> IO (28.0)

サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"

サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。

...

絞り込み条件を変える

IO.popen(env = {}, [[cmdname, arg0], *args, execopt={}], mode = "r", opt={}) {|f| ... } -> object (28.0)

サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"

サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。

...

IO.popen(env = {}, [cmdname, *args, execopt={}], mode = "r", opt={}) -> IO (28.0)

サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"

サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。

...

IO.popen(env = {}, [cmdname, *args, execopt={}], mode = "r", opt={}) {|f| ... } -> object (28.0)

サブプロセスを実行し、そのプロセスの標準入出力 との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

サブプロセスを実行し、そのプロセスの標準入出力
との間にパイプラインを確立します。生成したパイプを IO オブジェクトとして返します。

p io = IO.popen("cat", "r+") # => #<IO:fd 4>
io.puts "foo"
io.close_write
p io.gets # => "foo\n"

サブプロセスを指定する方法は2通りあります。文字列を指定する場合と配列を指定する場合です。
文字列の場合は、シェルを経由して子プロセスを実行し、
配列の場合は、シェルを経由せずに子プロセスを実行します。

...

IO.popen("-", mode = "r", opt={}) -> IO (13.0)

第一引数に文字列 "-" が指定された時、fork(2) を 行い子プロセスの標準入出力との間にパイプラインを確立します。 親プロセスでは IO オブジェクトを返し、子プロセスでは nil を返します。

第一引数に文字列 "-" が指定された時、fork(2) を
行い子プロセスの標準入出力との間にパイプラインを確立します。
親プロセスでは IO オブジェクトを返し、子プロセスでは
nil を返します。

io = IO.popen("-", "r+")
if io # parent
io.puts "foo"
p io.gets # => "child output: foo\n"
io.close
else # child
s = gets
print "child output: " + s
...

IO.popen("-", mode = "r", opt={}) {|io| ... } -> object (13.0)

第一引数に文字列 "-" が指定された時、fork(2) を 行い子プロセスの標準入出力との間にパイプラインを確立します。 親プロセスでは IO オブジェクトを返し、子プロセスでは nil を返します。

第一引数に文字列 "-" が指定された時、fork(2) を
行い子プロセスの標準入出力との間にパイプラインを確立します。
親プロセスでは IO オブジェクトを返し、子プロセスでは
nil を返します。

io = IO.popen("-", "r+")
if io # parent
io.puts "foo"
p io.gets # => "child output: foo\n"
io.close
else # child
s = gets
print "child output: " + s
...

絞り込み条件を変える

IO.popen(env, "-", mode = "r", opt={}) -> IO (13.0)

第一引数に文字列 "-" が指定された時、fork(2) を 行い子プロセスの標準入出力との間にパイプラインを確立します。 親プロセスでは IO オブジェクトを返し、子プロセスでは nil を返します。

第一引数に文字列 "-" が指定された時、fork(2) を
行い子プロセスの標準入出力との間にパイプラインを確立します。
親プロセスでは IO オブジェクトを返し、子プロセスでは
nil を返します。

io = IO.popen("-", "r+")
if io # parent
io.puts "foo"
p io.gets # => "child output: foo\n"
io.close
else # child
s = gets
print "child output: " + s
...

IO.popen(env, "-", mode = "r", opt={}) {|io| ... } -> object (13.0)

第一引数に文字列 "-" が指定された時、fork(2) を 行い子プロセスの標準入出力との間にパイプラインを確立します。 親プロセスでは IO オブジェクトを返し、子プロセスでは nil を返します。

第一引数に文字列 "-" が指定された時、fork(2) を
行い子プロセスの標準入出力との間にパイプラインを確立します。
親プロセスでは IO オブジェクトを返し、子プロセスでは
nil を返します。

io = IO.popen("-", "r+")
if io # parent
io.puts "foo"
p io.gets # => "child output: foo\n"
io.close
else # child
s = gets
print "child output: " + s
...