kikeda1104's blog

備忘録・技術に関することを書いています。(webエンジニア)

shellコマンドのエスケープ[Ruby]

外部コマンドで、ファイルパスを渡す際にエスケープが必要になり探していたら見つけた。

前提

ruby 2.2.10
rails 4.2.x.x

コマンドまたは引数の文字列をエスケープ

require 'shellwords'
file_name = 'tmp/file_name1(1).txt'

system "ls -lShellwords.escape \'#{file_name}'\"

参考

docs.ruby-lang.org

docs.ruby-lang.org