почему в cgi не работает цикл case

Компьютеры программирование Linux сервер bash

Вот мой скрипт:

#!/bin/bash

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

echo '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
<TITLE></TITLE>
<META NAME="GENERATOR" CONTENT="OpenOffice.org 3.4.1 (Win32)">
<META NAME="CREATED" CONTENT="20130719;8083116">
<META NAME="CHANGED" CONTENT="20130719;8132383">
</HEAD>
<BODY LANG="ru-RU" DIR="LTR">
<P><FONT COLOR="#ff0000"> <FONT SIZE=7 STYLE="font-size: 32pt"><B> Управление питанием</B></FONT></FONT></P>
<P><BR><BR>
</P>
<P STYLE="font-weight: normal"><FONT COLOR="#000000"><FONT SIZE=4><A HREF="?ACTION=P">Выключить</A></FONT></FONT></P>
<P STYLE="font-weight: normal"><FONT COLOR="#000000"><FONT SIZE=4><A HREF="?ACTION=R">Перезагрузить</A></FONT></FONT></P>
<P STYLE="font-weight: normal"><FONT COLOR="#000000"><FONT SIZE=4><A HREF="?ACTION=E">Выйти/A></FONT></FONT></P>
<P STYLE="font-weight: normal"><FONT COLOR="#000000"><FONT SIZE=4><A HREF="/index.html">Назад</A></FONT></FONT></P>
</BODY>
</HTML>
'

MENU=$(echo $QUERY_STRING|tr "ACTION=" " ")
ARG=$MENU
echo $ARG
case $ARG in
P)
echo "gf"
./header.sh POWEROFF $REMOTE_ADDR
;;
R)
./header.sh REBOOT $REMOTE_ADDR
;;
E)
./header.sh LOGOUT $REMOTE_ADDR
;;
esac

Когда нажимаюна первую ссылку, то отображается только параметр, которые должен быть передан в case. А Должно отображаться слово test. Перекодировал из windows кадировки, в linux.

В чём ошибка?

Примечание:
заменил строку с: MENU=$(echo $QUERY_STRING|tr "ACTION=" " ")
на: MENU=${echo $QUERY_STRING|tr "ACTION=" " "| gawk '{print $1}'}

И заработало!!
Ответы:
> А Должно отображаться слово test
С чего вдруг? В данном cкрипте нигде нет команды вывода слова "test"
> А Должно отображаться слово test.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.