Ruby可以使用以下几种方法来执行shell脚本。
1、使用反引号``调用shell脚本
语法
`cmd`
返回命令的结果
示例
`echo "hello"`
2、内置语法
%x( cmd )
其中%x后面为分隔符,上面使用了(作为分隔符,当遇到收括号即表示命令结束。这些分隔符可以为[,{等。
示例
%x( echo 'hello' )
3、Kernal#system
system( cmd )
如果命令存在返回true,否则返回false。命令会在子shell脚本里执行。
示例
flag = system( "echo 'hello'")
4、Kernel#exec
exec( cmd )
exec会替换当前的进程执行命令,没有返回值。
示例
exec( "echo 'hello'" )
获取命令状态
``,%x{}以及sytem会在一个子sell里执行命令,可以使用$?获取最后一个命令的执行状态
$?.exitstatus
$?.pid