Html 如何执行和显示命令cgi脚本的输出
我想从变量执行命令并显示输出。 代码看起来像这样,但不起作用我不知道为什么Html 如何执行和显示命令cgi脚本的输出,html,bash,cgi,Html,Bash,Cgi,我想从变量执行命令并显示输出。 代码看起来像这样,但不起作用我不知道为什么 #!/bin/sh echo "Content-type: text/html" echo argu="arp -a | grep $REMOTE_ADDR | awk '{print $4}'" echo '<html> <head> <title> CGI script </title> </head> <body>' echo "<
#!/bin/sh
echo "Content-type: text/html"
echo
argu="arp -a | grep $REMOTE_ADDR | awk '{print $4}'"
echo '<html> <head> <title> CGI script </title> </head> <body>'
echo "<h1>HELLO $REMOTE_ADDR</h1>"
echo "Mac is ${argu}"
#/垃圾箱/垃圾箱
echo“内容类型:文本/html”
回声
argu=“arp-a | grep$REMOTE|ADDR | awk'{print$4}'
echo“CGI脚本”
echo“你好$REMOTE\u ADDR”
echo“Mac是${argu}”
您的脚本有一些问题,主要是argu
命令应该在子shell中运行:
#!/bin/sh
echo "Content-type: text/html"
echo
argu="$(arp -a | grep "$REMOTE_ADDR" | awk '{print $4}')"
echo '<html> <head> <title> CGI script </title> </head> <body>'
echo "<h1>HELLO $REMOTE_ADDR</h1>"
echo "Mac is $argu"
#/垃圾箱/垃圾箱
echo“内容类型:文本/html”
回声
argu=“$(arp-a | grep“$REMOTE|u ADDR”| awk'{print$4}')”
echo“CGI脚本”
echo“你好$REMOTE\u ADDR”
echo“Mac是$argu”
此外,您
grep
的变量应该是双引号。您可以随时检查诸如@shellcheck.net之类的脚本的语法。如果您像这样设置argu
,它将起作用:
argu=`arp -a | grep "$REMOTE_ADDR" | awk '{print $4}'`
原因是:
- 命令替换可以通过`Command'完成`
不能用双引号括起来,否则将由外壳代替awk李>$4
确保设置了
$REMOTE\u ADDR
。它仍然不工作,先生。无法获取mac地址您应该包括您获得的输出,并显示哪部分不正确。