【发布时间】:2016-05-15 07:16:02
【问题描述】:
我的任务是在 Webmin 中创建一个简单的页面和表单,它接受 5 个参数,并将它们发送到 bash 脚本以进行进一步处理。
没什么特别的,但这对我来说是新的,我不确定如何完成这项任务。
我可以手动将参数传递给我的 bash 脚本,例如
sh mySync.sh "1.2.3.4" "user" "password" "abc" "def"
他们会相应地回响。
这是我的文件:
index.cgi
#!/usr/bin/perl
require 'mySync-lib.pl';
ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
$conf = get_mySync_config();
print &text('index_root', $dir),"<p>\n";
print( "<div class='container'>" );
print( "<div class='row'>" );
print( "<h3>MySync</h3>" );
print( "<p>Use this utility to pass params to mySync.sh</p>" );
print( "<form class='form-horizontal' method='POST' action='mySync.sh'>" );
print( "<div class='form-group'>" );
print( "<label for='targetServer' class='col-xs-2 control-label'>Target Server</label>" );
print( "<div class='col-xs-7'>" );
print( "<input type='text' class='form-control' name='targetServer' id='targetServer' placeholder='Target Server'>" );
print( "</div>" );
print( "</div>" );
print( "<div class='form-group'>" );
print( "<label for='userName' class='col-xs-2 control-label'>User Name</label>" );
print( "<div class='col-xs-7'>" );
print( "<input type='text' class='form-control' name='userName' id='userName' placeholder='User Name'>" );
print( "</div>" );
print( "</div>" );
print( "<div class='form-group'>" );
print( "<label for='password' class='col-xs-2 control-label'>Password</label>" );
print( "<div class='col-xs-7'>" );
print( "<input type='password' class='form-control' name='password' id='password'>" );
print( "</div>" );
print( "</div>" );
print( "<div class='form-group'>" );
print( "<label for='srcScope' class='col-xs-2 control-label'>Source Scope</label>" );
print( "<div class='col-xs-7'>" );
print( "<input type='text' class='form-control' name='srcScope' id='srcScope'>" );
print( "</div>" );
print( "</div>" );
print( "<div class='form-group'>" );
print( "<label for='destScope' class='col-xs-2 control-label'>Destination Scope</label>" );
print( "<div class='col-xs-7'>" );
print( "<input type='text' class='form-control' name='destScope' id='destScope'>" );
print( "</div>" );
print( "</div>" );
print( "<div class='form-group'>" );
print( "<div class='col-xs-offset-2 col-xs-10'>" );
print( "<button type='submit' class='btn btn-default'>Send Data to mySync.sh</button>" );
print( "</div>" );
print( "</div>" );
print( "</form>" );
print( "</div>" );
print( "</div> <!- end of container ->" );
ui_print_footer("/", $text{'index'});
mySync.sh
#!/bin/bash
echo "BASH FIELD 1: $1"
echo "BASH FIELD 2: $2"
echo "BASH FIELD 3: $3"
echo "BASH FIELD 4: $4"
echo "BASH FIELD 5: $5"
如果我遗漏了一个步骤,或者下一个合乎逻辑的步骤是什么,请告诉我。 谢谢!
【问题讨论】:
-
如果你 POST 到一个脚本,那么参数是通过 STDIN 给出的,即从你的 bash 脚本中你必须阅读 STDIN 来获取它们。也许这可能会有所帮助:stackoverflow.com/a/5451943/5830574