How can I paste multiple line command with Docker interactive mode but not evaluating?

225 views Asked by At

For example I am opening an interactive command line window.

docker exec -it container rails c

When I paste a multiple-line command, it evaluate every line instead of pasting a block. How can I configure it as not to evaluate?

Order.last
     .user
     .id
1

There are 1 answers

1
BroiSatse On

Ah, simple trick here: type begin + enter, paste the code, type end:

begin
  Order.last
       .user
       .id
end

It cannot and should not be configurable. The reason is that the console cannot posisible know when you have finished typing the whole command, as the first line is a completely valid ruby statement. Things are slightly different if you adapt different coding style:

Order.last.
      user.
      id

The code above will work once copied to console (but gosh, I really hate that style!) because it is clear to the interpreter that the statement is not completed yet - similarly to missing closing bracket or quote. Wrapping the code in begin/end have the same effect - it tells the interpreter that the code is not yet completed, so it awaits for the final end.