X7ROOT File Manager
Current Path:
/opt/alt/ruby22/lib64/ruby/2.2.0
opt
/
alt
/
ruby22
/
lib64
/
ruby
/
2.2.0
/
??
..
??
English.rb
(6.42 KB)
??
abbrev.rb
(3.46 KB)
??
base64.rb
(2.63 KB)
??
benchmark.rb
(17.73 KB)
??
cgi
??
cgi.rb
(9.77 KB)
??
cmath.rb
(9.34 KB)
??
csv.rb
(82.45 KB)
??
date.rb
(980 B)
??
debug.rb
(29.08 KB)
??
delegate.rb
(10.71 KB)
??
digest
??
digest.rb
(2.79 KB)
??
drb
??
drb.rb
(19 B)
??
e2mmap.rb
(3.77 KB)
??
erb.rb
(26.35 KB)
??
expect.rb
(2.14 KB)
??
fiddle
??
fiddle.rb
(1.65 KB)
??
fileutils.rb
(47.46 KB)
??
find.rb
(2.48 KB)
??
forwardable.rb
(8.22 KB)
??
getoptlong.rb
(15.38 KB)
??
io
??
ipaddr.rb
(17.06 KB)
??
irb
??
irb.rb
(20.03 KB)
??
json
??
json.rb
(1.74 KB)
??
kconv.rb
(5.74 KB)
??
logger.rb
(20.33 KB)
??
mathn.rb
(3.84 KB)
??
matrix
??
matrix.rb
(53.14 KB)
??
mkmf.rb
(82.59 KB)
??
monitor.rb
(6.93 KB)
??
mutex_m.rb
(2 KB)
??
net
??
observer.rb
(5.8 KB)
??
open-uri.rb
(24.58 KB)
??
open3.rb
(20.55 KB)
??
openssl
??
openssl.rb
(528 B)
??
optionparser.rb
(28 B)
??
optparse
??
optparse.rb
(52.05 KB)
??
ostruct.rb
(8.66 KB)
??
pathname.rb
(15.58 KB)
??
pp.rb
(14.16 KB)
??
prettyprint.rb
(15.85 KB)
??
prime.rb
(13.11 KB)
??
profile.rb
(205 B)
??
profiler.rb
(4.51 KB)
??
pstore.rb
(14.55 KB)
??
psych
??
psych.rb
(14.88 KB)
??
racc
??
rake
??
rake.rb
(2.23 KB)
??
rbconfig
??
rdoc
??
rdoc.rb
(4.96 KB)
??
resolv-replace.rb
(1.73 KB)
??
resolv.rb
(72.06 KB)
??
rexml
??
rinda
??
ripper
??
ripper.rb
(2.53 KB)
??
rss
??
rss.rb
(2.84 KB)
??
rubygems
??
rubygems.rb
(31.85 KB)
??
scanf.rb
(23.54 KB)
??
securerandom.rb
(9.2 KB)
??
set.rb
(19.15 KB)
??
shell
??
shell.rb
(11.3 KB)
??
shellwords.rb
(5.96 KB)
??
singleton.rb
(4.02 KB)
??
socket.rb
(25.6 KB)
??
sync.rb
(7.25 KB)
??
syslog
??
tempfile.rb
(11.11 KB)
??
thwait.rb
(3.31 KB)
??
time.rb
(22.25 KB)
??
timeout.rb
(3.64 KB)
??
tmpdir.rb
(4.13 KB)
??
tracer.rb
(6.4 KB)
??
tsort.rb
(14.27 KB)
??
ubygems.rb
(268 B)
??
un.rb
(8.87 KB)
??
unicode_normalize
??
unicode_normalize.rb
(3.16 KB)
??
uri
??
uri.rb
(3.07 KB)
??
weakref.rb
(2.92 KB)
??
webrick
??
webrick.rb
(6.69 KB)
??
x86_64-linux
??
xmlrpc
??
xmlrpc.rb
(8.49 KB)
??
yaml
??
yaml.rb
(1.7 KB)
Editing: shellwords.rb
## # == Manipulates strings like the UNIX Bourne shell # # This module manipulates strings according to the word parsing rules # of the UNIX Bourne shell. # # The shellwords() function was originally a port of shellwords.pl, # but modified to conform to POSIX / SUSv3 (IEEE Std 1003.1-2001 [1]). # # === Usage # # You can use Shellwords to parse a string into a Bourne shell friendly Array. # # require 'shellwords' # # argv = Shellwords.split('three blind "mice"') # argv #=> ["three", "blind", "mice"] # # Once you've required Shellwords, you can use the #split alias # String#shellsplit. # # argv = "see how they run".shellsplit # argv #=> ["see", "how", "they", "run"] # # Be careful you don't leave a quote unmatched. # # argv = "they all ran after the farmer's wife".shellsplit # #=> ArgumentError: Unmatched double quote: ... # # In this case, you might want to use Shellwords.escape, or its alias # String#shellescape. # # This method will escape the String for you to safely use with a Bourne shell. # # argv = Shellwords.escape("special's.txt") # argv #=> "special\\'s.txt" # system("cat " + argv) # # Shellwords also comes with a core extension for Array, Array#shelljoin. # # argv = %w{ls -lta lib} # system(argv.shelljoin) # # You can use this method to create an escaped string out of an array of tokens # separated by a space. In this example we used the literal shortcut for # Array.new. # # === Authors # * Wakou Aoyama # * Akinori MUSHA <knu@iDaemons.org> # # === Contact # * Akinori MUSHA <knu@iDaemons.org> (current maintainer) # # === Resources # # 1: {IEEE Std 1003.1-2004}[http://pubs.opengroup.org/onlinepubs/009695399/toc.htm] module Shellwords # Splits a string into an array of tokens in the same way the UNIX # Bourne shell does. # # argv = Shellwords.split('here are "two words"') # argv #=> ["here", "are", "two words"] # # String#shellsplit is a shortcut for this function. # # argv = 'here are "two words"'.shellsplit # argv #=> ["here", "are", "two words"] def shellsplit(line) words = [] field = '' line.scan(/\G\s*(?>([^\s\\\'\"]+)|'([^\']*)'|"((?:[^\"\\]|\\.)*)"|(\\.?)|(\S))(\s|\z)?/m) do |word, sq, dq, esc, garbage, sep| raise ArgumentError, "Unmatched double quote: #{line.inspect}" if garbage field << (word || sq || (dq || esc).gsub(/\\(.)/, '\\1')) if sep words << field field = '' end end words end alias shellwords shellsplit module_function :shellsplit, :shellwords class << self alias split shellsplit end # Escapes a string so that it can be safely used in a Bourne shell # command line. +str+ can be a non-string object that responds to # +to_s+. # # Note that a resulted string should be used unquoted and is not # intended for use in double quotes nor in single quotes. # # argv = Shellwords.escape("It's better to give than to receive") # argv #=> "It\\'s\\ better\\ to\\ give\\ than\\ to\\ receive" # # String#shellescape is a shorthand for this function. # # argv = "It's better to give than to receive".shellescape # argv #=> "It\\'s\\ better\\ to\\ give\\ than\\ to\\ receive" # # # Search files in lib for method definitions # pattern = "^[ \t]*def " # open("| grep -Ern #{pattern.shellescape} lib") { |grep| # grep.each_line { |line| # file, lineno, matched_line = line.split(':', 3) # # ... # } # } # # It is the caller's responsibility to encode the string in the right # encoding for the shell environment where this string is used. # # Multibyte characters are treated as multibyte characters, not as bytes. # # Returns an empty quoted String if +str+ has a length of zero. def shellescape(str) str = str.to_s # An empty argument will be skipped, so return empty quotes. return "''" if str.empty? str = str.dup # Treat multibyte characters as is. It is the caller's responsibility # to encode the string in the right encoding for the shell # environment. str.gsub!(/([^A-Za-z0-9_\-.,:\/@\n])/, "\\\\\\1") # A LF cannot be escaped with a backslash because a backslash + LF # combo is regarded as a line continuation and simply ignored. str.gsub!(/\n/, "'\n'") return str end module_function :shellescape class << self alias escape shellescape end # Builds a command line string from an argument list, +array+. # # All elements are joined into a single string with fields separated by a # space, where each element is escaped for the Bourne shell and stringified # using +to_s+. # # ary = ["There's", "a", "time", "and", "place", "for", "everything"] # argv = Shellwords.join(ary) # argv #=> "There\\'s a time and place for everything" # # Array#shelljoin is a shortcut for this function. # # ary = ["Don't", "rock", "the", "boat"] # argv = ary.shelljoin # argv #=> "Don\\'t rock the boat" # # You can also mix non-string objects in the elements as allowed in Array#join. # # output = `#{['ps', '-p', $$].shelljoin}` # def shelljoin(array) array.map { |arg| shellescape(arg) }.join(' ') end module_function :shelljoin class << self alias join shelljoin end end class String # call-seq: # str.shellsplit => array # # Splits +str+ into an array of tokens in the same way the UNIX # Bourne shell does. # # See Shellwords.shellsplit for details. def shellsplit Shellwords.split(self) end # call-seq: # str.shellescape => string # # Escapes +str+ so that it can be safely used in a Bourne shell # command line. # # See Shellwords.shellescape for details. def shellescape Shellwords.escape(self) end end class Array # call-seq: # array.shelljoin => string # # Builds a command line string from an argument list +array+ joining # all elements escaped for the Bourne shell and separated by a space. # # See Shellwords.shelljoin for details. def shelljoin Shellwords.join(self) end end
Upload File
Create Folder