本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。