本文简要介绍ruby语言中 Kernel.system
的用法。
用法
system([env,] command... [,options], exception: false) → true, false or nil
在子shell 中执行command…
。 command…
是以下形式之一。
commandline
-
传递给标准 shell 的命令行字符串
cmdname, arg1, ...
-
命令名称和一个或多个参数(无 shell )
[cmdname, argv0], arg1, ...
-
命令名称,
argv[0]
和零个或多个参数(无 shell )
如果命令给出零退出状态,系统返回true
,非零退出状态返回false
。如果命令执行失败,则返回 nil
。 $?
中提供了错误状态。
如果传递了 exception: true
参数,则该方法会引发异常而不是返回 false
或 nil
。
参数的处理方式与 Kernel#spawn
相同。
散列参数 env 和 options 与 exec
和 spawn
相同。有关详细信息,请参阅 Kernel#spawn
。
system("echo *")
system("echo", "*")
产生:
config.h main.rb *
错误处理:
system("cat nonexistent.txt")
# => false
system("catt nonexistent.txt")
# => nil
system("cat nonexistent.txt", exception: true)
# RuntimeError (Command failed with exit 1: cat)
system("catt nonexistent.txt", exception: true)
# Errno::ENOENT (No such file or directory - catt)
有关标准 shell ,请参见 Kernel#exec
。
相关用法
- Ruby Kernel.syscall用法及代码示例
- Ruby Kernel.set_trace_func用法及代码示例
- Ruby Kernel.select用法及代码示例
- Ruby Kernel.sprintf用法及代码示例
- Ruby Kernel.srand用法及代码示例
- Ruby Kernel.sleep用法及代码示例
- Ruby Kernel.spawn用法及代码示例
- Ruby Kernel.local_variables用法及代码示例
- Ruby Kernel.Integer用法及代码示例
- Ruby Kernel.binding用法及代码示例
- Ruby Kernel.frozen?用法及代码示例
- Ruby Kernel.`cmd`用法及代码示例
- Ruby Kernel.autoload用法及代码示例
- Ruby Kernel.loop用法及代码示例
- Ruby Kernel.Hash用法及代码示例
- Ruby Kernel.caller用法及代码示例
- Ruby Kernel.exit!用法及代码示例
- Ruby Kernel.trap用法及代码示例
- Ruby Kernel.String用法及代码示例
- Ruby Kernel.then用法及代码示例
- Ruby Kernel.Pathname用法及代码示例
- Ruby Kernel.yield_self用法及代码示例
- Ruby Kernel.BigDecimal用法及代码示例
- Ruby Kernel.raise用法及代码示例
- Ruby Kernel.test用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Kernel.system。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。