我的应用程序允许在localhost上运行shell命令,因为我已经在模型中编写了逻辑:
require "open4"
class Command < ApplicationRecord
after_save :command_run
def command_run
ab=[cm].compact.join("")
pid, stdin, stdout, stderr = Open4::popen4 ab
stdin.puts "echo 42.out"
stdin.puts "echo 42.err 1>&2"
stdin.close
ignored, status = Process::waitpid2 pid
@zr= "pid : #{ pid .inspect}"
@pr= "stdout : #{ stdout.read.strip.inspect }"
@mr ="stderr : #{ stderr.read.strip.inspect }"
@nr = "status : #{ status.inspect }"
@rr= "exitstatus : #{ status.exitstatus.inspect }"
end
end
我尝试在localhost
上运行时遇到错误:
在此处输入代码命令#index中的参数错误 显示/home/mifi/bash/app/views/commands/index.html.erb,其中第12行引发: 编组数据太短
无论如何,我可以在命令行上运行shell脚本,或者如何在浏览器上提取输出。