るりまサーチ

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

別のキーワード

  1. shell/builtin-command new
  2. etc sc_shell
  3. shell/builtin-command each
  4. shell cd
  5. shell debug

クラス

モジュール

キーワード

検索結果

<< < 1 2 3 > >>

Timeout.#timeout(sec, exception_class = nil) {|i| ... } -> object (42.0)

ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。

...){|fp|
fp.print <<SHELL_EOT
#!/bin/bash

S="scale=10"
M=32767

trap 'echo "$S; $m1/($m1+$m2)*4" | bc ; echo "count = $((m1+m2))" ; exit 0' INT
m1=0
m2=0

while true
do
x="($RANDOM/$M)"
y="($RANDOM/$M)"
c=$(echo "$S;$x^2+$y^2 < 1.0" | bc)
echo
$x $y $c
if [ $c...
...-eq 1 ]
then
let m1++
else
let m2++
fi
done
SHELL
_EOT
}

File.chmod(0755, "loop.sh")
t = 10 # 10 秒でタイムアウト
begin
pid = nil
com = nil
Timeout.timeout(t) {
# system だととまらない
# system("./loop.sh")
com = IO.pop...
...n("./loop.sh")
pid = com.pid
while line = com.gets
print line
end
}
rescue Timeout::Error => err
puts "timeout: shell execution."
Process.kill('SIGINT', pid)
printf "[result]\t%s", com.read
com.close unless com.nil?
end

#止まっているか確...

Timeout.#timeout(sec, exception_class, message) {|i| ... } -> object (42.0)

ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。

...){|fp|
fp.print <<SHELL_EOT
#!/bin/bash

S="scale=10"
M=32767

trap 'echo "$S; $m1/($m1+$m2)*4" | bc ; echo "count = $((m1+m2))" ; exit 0' INT
m1=0
m2=0

while true
do
x="($RANDOM/$M)"
y="($RANDOM/$M)"
c=$(echo "$S;$x^2+$y^2 < 1.0" | bc)
echo
$x $y $c
if [ $c...
...-eq 1 ]
then
let m1++
else
let m2++
fi
done
SHELL
_EOT
}

File.chmod(0755, "loop.sh")
t = 10 # 10 秒でタイムアウト
begin
pid = nil
com = nil
Timeout.timeout(t) {
# system だととまらない
# system("./loop.sh")
com = IO.pop...
...n("./loop.sh")
pid = com.pid
while line = com.gets
print line
end
}
rescue Timeout::Error => err
puts "timeout: shell execution."
Process.kill('SIGINT', pid)
printf "[result]\t%s", com.read
com.close unless com.nil?
end

#止まっているか確...

Kernel.#exec(command, options={}) -> () (27.0)

引数で指定されたコマンドを実行します。

...マンド(あるいは shell)になるので、
起動に成功した場合、このメソッドからは戻りません。

=== 引数の解釈

この形式では command が shell のメタ文字
//emlist{
* ? {} [] <> () ~ & | \ $ ; ' ` " \n
//}
を含む場合、shell 経由で実行されま...
...XX 起動に失敗し、ruby インタプリタに制御が戻った場合に発生します。

//emlist[例][ruby]{
# a.rb
puts '実行前'
exec 'echo "実行中"'
puts '実行後'
//}

上記のスクリプトを実行すると以下のようになります。

$ ruby a.rb
実行前
実行...

Kernel.#exec(env, command, options={}) -> () (27.0)

引数で指定されたコマンドを実行します。

...マンド(あるいは shell)になるので、
起動に成功した場合、このメソッドからは戻りません。

=== 引数の解釈

この形式では command が shell のメタ文字
//emlist{
* ? {} [] <> () ~ & | \ $ ; ' ` " \n
//}
を含む場合、shell 経由で実行されま...
...XX 起動に失敗し、ruby インタプリタに制御が戻った場合に発生します。

//emlist[例][ruby]{
# a.rb
puts '実行前'
exec 'echo "実行中"'
puts '実行後'
//}

上記のスクリプトを実行すると以下のようになります。

$ ruby a.rb
実行前
実行...

Kernel.#spawn(env, program, *args, options={}) -> Integer (26.0)

引数を外部コマンドとして実行しますが、生成した 子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。

...
そうでないとゾンビプロセスが残る場合があります。

=== 引数の解釈

この形式で呼び出した場合、空白や shell のメタキャラクタも
そのまま program の引数に渡されます。
先頭の引数が2要素の配列であった場合、第1要素...
...IO.popen で、子プロセスの
stderr と stdout を混ぜる例を以下に示します。
//emlist[][ruby]{
io = IO.popen(["sh", "-c", "echo out; echo err >&2", :err=>[:child, :out]])
p io.read #=> "out\nerr\n
//}

spawn と IO.popen では
デフォルトでは非標準的なファイルデス...
...承されなければならないため、 log_w=>log_w とします。
log_r, log_w = IO.pipe
pid = spawn("valgrind", "--log-fd=#{log_w.fileno}", "echo", "a", log_w=>log_w)
log_w.close
p log_r.read
//}

ファイルデスクリプタを入れ替えることもできます。
//emlist[][ruby]{
# std...

絞り込み条件を変える

Kernel.#spawn(program, *args) -> Integer (26.0)

引数を外部コマンドとして実行しますが、生成した 子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。

...
そうでないとゾンビプロセスが残る場合があります。

=== 引数の解釈

この形式で呼び出した場合、空白や shell のメタキャラクタも
そのまま program の引数に渡されます。
先頭の引数が2要素の配列であった場合、第1要素...
...IO.popen で、子プロセスの
stderr と stdout を混ぜる例を以下に示します。
//emlist[][ruby]{
io = IO.popen(["sh", "-c", "echo out; echo err >&2", :err=>[:child, :out]])
p io.read #=> "out\nerr\n
//}

spawn と IO.popen では
デフォルトでは非標準的なファイルデス...
...承されなければならないため、 log_w=>log_w とします。
log_r, log_w = IO.pipe
pid = spawn("valgrind", "--log-fd=#{log_w.fileno}", "echo", "a", log_w=>log_w)
log_w.close
p log_r.read
//}

ファイルデスクリプタを入れ替えることもできます。
//emlist[][ruby]{
# std...

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

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

...置き換えます。


=== 引数の解釈

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

@param command 実行する外部コマンド。

@param args command に渡す引数。

exec "echo *" # echoes list of files in current directory
# never get here


exec "echo", "*" # echoes an asterisk
# never get here...

Kernel.#exec(env, program, *args, options={}) -> () (22.0)

引数で指定されたコマンドを実行します。

...行します。

プロセスの実行コードはそのコマンド(あるいは shell)になるので、
起動に成功した場合、このメソッドからは戻りません。

この形式では、常に shell を経由せずに実行されます。

exec(3) でコマンドを実行すると...
...更できます。
詳しくは Kernel.#spawn を参照してください。

=== 引数の解釈

この形式で呼び出した場合、空白や shell のメタキャラクタも
そのまま program の引数に渡されます。
先頭の引数が2要素の配列であった場合、第1要素...

Kernel.#exec(program, *args, options={}) -> () (22.0)

引数で指定されたコマンドを実行します。

...行します。

プロセスの実行コードはそのコマンド(あるいは shell)になるので、
起動に成功した場合、このメソッドからは戻りません。

この形式では、常に shell を経由せずに実行されます。

exec(3) でコマンドを実行すると...
...更できます。
詳しくは Kernel.#spawn を参照してください。

=== 引数の解釈

この形式で呼び出した場合、空白や shell のメタキャラクタも
そのまま program の引数に渡されます。
先頭の引数が2要素の配列であった場合、第1要素...

Kernel.#system(command, options={}) -> bool | nil (20.0)

引数を外部コマンドとして実行して、成功した時に真を返します。

...$? を参照することで判別可能です。

=== 引数の解釈

この形式では command が shell のメタ文字
//emlist{
* ? {} [] <> () ~ & | \ $ ; ' ` " \n
//}
を含む場合、shell 経由で実行されます。
そうでなければインタプリタから直接実行されま...
...、コマンドの終了ステータスが 0 以外のときに発生します。

//emlist[シェル経由でコマンドを実行][ruby]{
system("echo *") # => true
# fileA fileB fileC ...
//}

//emlist[exceptionオプションを指定][ruby]{
system("sad", exception: true) # =>...

絞り込み条件を変える

<< < 1 2 3 > >>