我一直負責在Webmin中創建一個簡單的頁面和表單,它需要5個參數,並將它們發送到bash腳本以供進一步處理。如何將表單數據從cgi文件發佈到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"
請讓我知道如果我錯過了一步,或下一個合乎邏輯的步驟是什麼。 謝謝!
如果您發佈一個腳本,則參數是通過STDIN給出,從您的bash腳本內即你必須閱讀STDIN才能得到它們。也許這可能有所幫助:http:// stackoverflow。com/a/5451943/5830574 – PerlDuck