Ruby调用shell脚本总结

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

版权声明:著作权归作者所有。

相关推荐

在shell脚本使用sftp登陆远程服务执行命令

有时我们需要定期登陆到远程服务器去去执行一些命令,sftp是一个让我们在shell脚本登陆到远程服务器的工具,这里演示一个例子:echo "sftp start" >> ~/logfile.log sftp username@host <<EOF >> ~/lo

Shell脚本使用curl命令发送JSON数据

在Linux使用命令行工具curl发送JSON数据需要把content-type设置为“application/json”。-H "Content-Type: application/json 示例curl -H "Content-Type: application/json" -X POST&nb

Shell:如何在awk脚本里使用变量

在awk里用变量最好的方法是使用-v选项。使用方式awk -v var= 单个变量~]$ v1="变量1" ~]$ awk -v var1="$v1" 'BEGIN {print var1}' 变量1 多个变量使用多个-v var=xxx来接收多个变量~]$&

Linux Shell脚本里的单引号和双引号的区别

双引号在Shell脚本里,双引号里的字符,除$、\、’、和”这几个字符是特殊字符并保留其特殊功能外,其余字符作为普通字符对待。在双引号内支持内插变量,使用$符号表示。支持内插转义,使用反斜杠\做转,对于在双引号内的"需要使用反斜杠转义。单引号在Shell脚本里,单引号内的字符都为普通字符,不支持内插任何东西,即使是使用反斜杠对单引号做的转义也不行。示例:#!/bin/sh MYVAR=t

[译]Angular 5:升级和新功能的总结

代号为pentagonal-donut的Angular 5刚刚发布,它带来了一些新功能以及一些内部变化,这些会让Angular应用变得更小,执行变得更快。 在这篇文章中,我们将简要介绍一些最重要的变化以及升级指南。 有关更多详细信息,请参阅公告博客帖子,有关所有更改的详细信息,请参阅官方更新日志。性能这是Angular 5包含的一些改变,它会让你的应用变得更

Linux shell脚本获取命令行的输出

在Linux使用命令替换来获取命令行的输出命令替换格式:$(command) 或者`command` 这里的`为反引号。示例OUTPUT="$(ls -1)" echo "${OUTPUT}" 参考:Bash Reference Manual