#!/usr/bin/ruby

var info = []

# Pipe (read-only)
%p(uname -r).open_r.each { |line|
    info << line
    say line;
}

# Pipe with interpolation (read-only)
%P(uname #{"-" + "r"}).open_r.each { |line|
    info << line
    say line;
}

var str1 = `uname -r`;              # backtick: returns a string
var str2 = `uname #{"-" + "r"}`     # backtick with interpolation
var str3 = %x(uname -r);            # ditto, alternative syntax
var str4 = %X(uname #{"-" + "r"})   # bactick with interpolation

info << str1.chomp
info << str2.chomp
info << str3.chomp
info << str4.chomp

print str1;
print str2;

assert_eq(info.len, 6)
assert_eq(info.uniq.len, 1)

Sys.system('uname -r');   # system: executes a command and prints the result
#Sys.exec('uname -r');     # replaces current process with another