Issue #11915 has been updated by jeremyevans0 (Jeremy Evans). Status changed from Open to Closed This was fixed in Ruby 2.6: ``` $ ruby26 -e 'File.read "|/bin/ls"' Traceback (most recent call last): 1: from -e:1:in `<main>' -e:1:in `read': No such file or directory @ rb_sysopen - |/bin/ls (Errno::ENOENT) ``` ---------------------------------------- Bug #11915: File.read reading string starting with | executes it. https://bugs.ruby-lang.org/issues/11915#change-78932 * Author: yxhuvud (Linus Sellberg) * Status: Closed * Priority: Normal * Assignee: * Target version: * ruby -v: 2.1.5p273 * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- ```ruby puts File.read "|/bin/ls" [output of executing ls] => nil ``` This is quite surprising behaviour. It is one thing that some of the `.open` methods actually can execute stuff, but a method named 'read' should not behave like that. -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>