Получите строку query_string для моего CGI в ksh / html - PullRequest
0 голосов
/ 25 февраля 2020

В моем CGI есть скрипт k sh:

SERV_LINUX=$(cat /xxx/xxx/xxx/xxx/xxx/xxx/foo.txt | awk -F';' '{print $2}' | sort | uniq)

DATE_Linux=$(cat /xxx/xxx/xxx/xxx/xxx/xxx/foo.txt | awk -F';' '{print $3}' | sort | uniq)

echo "<form action="LINUX_GNU.ksh" method="post">"
echo "<select name="SERV">"
echo "$SERV_LINUX" | while read SERV_LINUX; do
echo " <option value="$SERV_LINUX">$SERV_LINUX</option>"
done
echo "</select>"

echo "<select name="DATE_Linux">"
echo "$DATE_Linux" | while read DATE_Linux; do
echo " <option value="$DATE_Linux">$DATE_Linux</option>"
done
echo "</select>"

echo "<input type="submit" value="Select">"
echo "</form>"

echo "</div>"

Этот фрагмент скрипта создает выпадающее меню, которое позволяет выбрать сервер. На моей второй странице, если я напишу это:

read a 
echo $a 

Я могу получить строку запроса следующим образом:

SERV=my_serv&DATE_Linux=2019-10 

Я хочу знать, возможно ли сделать то же самое, но только с кнопкой? Я имею в виду, если у меня в выпадающем меню 4 варианта, я бы хотел создать 4 кнопки, например:

SERV_LINUX=$(cat /xxx/xxx/xxx/xxx/xxx/xxx/foo.txt | awk -F';' '{print $2}' | sort | uniq)

echo "<form action="test.ksh" method="post">"
echo "$SERV_LINUX" | while read SERV_LINUX; do
echo "<input type="submit" value="$SERV_LINUX">"
done
echo "</select>"
echo "</form>"

Но когда я пытаюсь это сделать, у меня нет результата ... думаю, что это возможно? У вас есть идея сделать это?

Спасибо! :)

1 Ответ

0 голосов
/ 25 февраля 2020

Вы пропускаете escape-последовательности везде. Вы должны исправить это. Это сработало для меня:

SERV_LINUX=$(echo -e "server1\nserver2\nserver3" | sort | uniq)

echo "<form action=\"test.ksh\" method=\"post\">"
while read SERV_LINUX; do
    echo "<input type=\"submit\" value=\"$SERV_LINUX\">"
done <<< "$SERV_LINUX"
echo "</select></form>"

Дайте мне знать, если это поможет.

...