CGi в bash / html: как восстановить строку запроса - PullRequest
0 голосов
/ 15 мая 2019

Я не знаю, возможно ли то, что я хочу, но:

Я настраиваю CGI bash / html, который позволит мне генерировать графики с помощью GnuPlot.

Цель состоит в том, чтобы создать график моих кластеров.Я могу сделать это с помощью этого кода:

#!/bin/bash


echo "Content-type: text/html"
echo ""

echo '
<html>
    <head>
        <meta http-equiv="Content-Type" content="test/html"; charset=UTF-8">
        <title> CLUSTER GRAPH </title>
        <h1> Cluster Graph <font size=3> <a href="Index.sh">[ Index ]</a> </font> </h1>
        <hr size="4" color="blue">

    <style>
                         body{
                          background-color: #eff1f0;
                         }

    </style>

    </head>
<body>

<p> CLUSTER GRAPH : Chosse and press the button to generate the graph ! </p>'

Cluster_Name=$(cat ClusterFullList.csv | awk '{print $3}' | sort | uniq)
Frame_name=$(cat PowerSys-LPARmap-20180122.csv | awk -F';' '{print $1}' | sort | uniq | sed '$d')


#################################################################################
#                           CLUSTER                                             #
#################################################################################

echo "<form action="script_extract.sh" method="post">"
echo "<select name="CLUSTER">"
echo "$Cluster_Name" | while read CLUSTER; do
    echo " <option value="$CLUSTER">$CLUSTER</option>"
    done         
echo "</select>"
    echo "<input type="submit" value="Generate">"
echo "</form>"

echo"
</body>
</html> 
"

Если я нажму «создать», появится другая страница и покажет мне мой график.Это код этой страницы:

#!/bin/bash

echo "Content-type: text/html"
echo ""

echo "

    
 CLUSTER GRAPH 
         Cluster Graph  [ Index ]
        


        
             body{
              background-color: #eff1f0;
                         }

             hr{
              margin-top: 1%;
             }

             #p1{
               font-size: 18px;
               text-decoration: underline;
               margin-top: -38.7%;
               margin-left: 58.5%;
               margin-bottom: -38%;
             }

             #p2{
               font-size: 14px;
                           margin-top: 39%;
               margin-left: 58.5%;
               margin-bottom: 4%;
             }

             #graph{
              margin-top: -2%
             }
        
    

"

read a

test=`echo $a | cut -d'=' -f2`

Cluster_data=`cat ClusterFullList.csv | grep -w $test | awk '{print $1" "$2","$12","$14}' > test1.txt`

cat test.txt | sed "s/TITLE/$test/" | sed "s/CLUSTER_NAME.png/$test.png/" | sed "s/CLUSTER_1.txt/test1.txt/" > test2.txt

cat test2.txt | gnuplot

sed -n "s/CLUSTER_DATA/test1.txt/" Script_Conso.sh


echo "

image

`echo "Consumption difference :"`

`./Script_Conso.sh`

"

Чтобы восстановить имя моего кластера, я использую строку запроса моего Index.sh, когда явыберите мой кластер "":

read a

test=`echo $a | cut -d'=' -f2`

Эта часть моего CGI работает отлично, но теперь я хочу знать, возможно ли отобразить строку запроса непосредственно на моей странице Index.sh. Я пытаюсь добавитьэто на Index.sh, скопировав мою первую форму:

echo "<form action="">"
echo "<select name="CLUSTER">"
echo "$Cluster_Name" | while read CLUSTER; do
    echo " <option value="$CLUSTER">$CLUSTER</option>"
    done         
echo "</select>"
    echo "<input type="submit" value="Generate">"
echo "</form>"

read a # to read my query strings
echo $a # To display the query strings

Но это не работает ...

Как вы думаете, возможно ли это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...