Chinaunix

标题: 请教:网络浏览器,比如ie,怎么执行linux脚本? [打印本页]

作者: lanmanck    时间: 2008-05-09 11:08
标题: 请教:网络浏览器,比如ie,怎么执行linux脚本?
各位好:
  我在用arm+thttpd做了一个webserver,上位机已经可以访问,现在不知道如何通过网络来控制arm。

开发板给了一个例子,一个连接到本地目录下的/cgi-bin/,里面有2个脚本,但是用浏览器点击的时候,直接把脚本源码浏览出来了,跟txt文本文件一样,请问我该如何做?

给的例子中,有一个thttpd可执行文件和一个thttpd_wrapper脚本,其内容如下:

#!/bin/sh
DVEVMDIR=/opt/dvsdk
while true ; do
    cd $DVEVMDIR/web
    ./thttpd -c "/cgi-bin/*" -l /dev/null
    sleep 10
done

不管我执行这个thttpd_wrpper还是thttpd -c "/cgi-bin/*",浏览器还是把脚本代码贴出来了 :(

我把这个脚本贴出来:
#!/bin/sh

cat << EOF
Content-type: text/plain
Cache-control: no-cache

EOF

demodir=/opt/dvsdk
demo=interface

function check ()
{
    ps -C $1 > /dev/null
}

if check interface || check decode || check encode || check encodedecode
then
    echo A demo application is already running
else
    cd $demodir
    $demodir/$demo  < /dev/null > /dev/null 2>&1 &

    if test $? -eq 0
    then
        echo Started DVEVM A/V demo application
    else
        echo Failed to start DVEVM A/V demo application
    fi
fi
我用最简单的:
#!/bin/sh
mkdir /opt/dddddd
好像也不行。

权限原来是灰色的,我就点击“advanced permission...”,把全部勾都选上,这会儿浏览器就不出脚本代码了,但是还执行不了,echo "hello world"也不行,



谢谢!
作者: hmglly    时间: 2008-05-09 13:31
要想通过IE运行linux脚本,就要通过程序运行,而不是直接运行,服务器查找文件的时候,如果符合动态页面,那么就要通过相应的动态页面处理程序来处理,如果是静态页面,就会通过xml或者文本的形式发送到客户端,不符合以上两种情况的,一律按照文件的形式直接发送
比如jsp文件,交给tomcat处理,html交给浏览器处理,其它的一律是文本或者文件形式,并不进行任何解析
后缀决定了文件属性由谁来处理,文件语法决定了文件解析方法,
如果把jsp文件后缀更改成html,那么源码就直接以文本形式发送了,当然html还是要解析的,但IE可以查看源代码,查看的和服务器上的源代码一模一样的,
再比如下载的东西就是以文件流形式直接发送,并不进行任何解析。
你那种脚本就按照文本文件处理了,
还有一个原因就是:直接访问,你那脚本文件就跑到你的客户端来了,环境变了,运行是不可能了
要想运行这种脚本,就要通过程序间接运行,比如通过java程序:java.runtime.execute

[ 本帖最后由 hmglly 于 2008-5-9 13:34 编辑 ]
作者: suxiaoxiao529    时间: 2013-04-22 15:22
回复 1# lanmanck

    你好,我现在也遇到和你一样的问题,请问你后来是怎么解决的?求教啊

   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2