ruby执行shell命令

2021-06-18

09:14:15

作者: zeki

exec

  • 将命令替换当前进程中的操作,命令结束后会立即结束进程缺点是无法得知 shell 命令是否成功执行了
# demo.rb
exec 'echo "hello reader"'
print 'zeki'

# 执行
ruby demo.rb

# 输出
hello reader

system

  • 创建一个新的进程来执行命令,并返回布尔值结果,表示是否成功执行
$ irb
> system 'DUMMY="reader"'
=> true
> system 'echo "hello $DUMMY"'
=> true

> puts $?
pid 27271 exit 0
 => nil

> system 'false'
 => false
> puts $?
pid 27274 exit 1
 => nil

反引号 (`)

  • 这是我最喜欢的的方式,简洁!
  • 它也是创建一个新进程中执行命令
$ irb
> cmd = `uname -r`
=> "20.5.0\n"

> $?
=> #<Process::Status: pid 27325 exit 0>

> $?.to_i
=> 0
回复(0)
阅读(151)
还没有评论,赶紧评论下,抢个沙发?
请先登录