繁体   English   中英

如何执行和显示命令cgi脚本的输出

[英]How to execute and display output from command cgi script

我想从变量执行命令并显示输出。 代码看起来像这样,但它不起作用我不知道究竟为什么?

#!/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}"

你的脚本有一些问题,主要是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"

另外, grep变量应该是双引号。 您可以随时检查脚本的语法,例如@@ shellcheck.net。

如果您设置这样的argu ,它将起作用:

argu=`arp -a | grep "$REMOTE_ADDR" | awk '{print $4}'`

原因:

  • 可以使用`command`完成命令替换
  • $4不能用双引号括起来,否则它将被shell代替而不是awk。

确保设置了$REMOTE_ADDR

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM