ruby如何替换字符串的多个?

具体需求是这样的:
字符串 cmd = "ls ? grep ?"  这是一个shell命令,最后需要执行(system cmd), 先需要替换?为具体的值

有很多的办法,参考一下rails的conditions 实现的办法

https://github.com/rails/rails/blob/ceb33f84933639d3b61aac62e5e71fd087ab65ed/activerecord/lib/active_record/sanitization.rb#L24

      def replace_bind_variables(statement, values) #:nodoc:
        raise_if_bind_arity_mismatch(statement, statement.count('?'), values.size)
        bound = values.dup
        c = connection
        statement.gsub('?') { quote_bound_value(bound.shift, c) }
      end


和 faye 的日志显示办法

      message = message_args.shift.gsub(/\?/) do
        Faye.to_json(message_args.shift)
      end

实现自己的方法, code 如下
1.9.2p290 :008 > a = [1,2]
 => [1, 2] 
1.9.2p290 :009 > cmd.gsub(/\?/) {
1.9.2p290 :010 >     a.shift
1.9.2p290 :011?>   }



你可能感兴趣的:(json,cmd,System,Ruby,Rails,variables)