我是HTML的新手,我可以通过调用以下脚本在Web浏览器上打印一个简单的linux date命令。但是,我试图在网络浏览器上显示变量v
的内容,但我无法做到。我究竟做错了什么?我从命令行运行批处理文件时工作正常,换句话说没有错误。
#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "<html>"
echo "<head>"
echo "Today is $(date)"
v=`ssh -t -q jcrm16 ". ~/.profile;/opt/reuters/scripts/matt/adsuserlist"`
printf "$v"
# echo $(printf "$v") << tried this did not work
echo "</body>"
echo "</html>"
答案 0 :(得分:1)
不是将ssh
命令的输出放在变量中然后显示该变量的值,而是直接显示ssh
的输出更好:
#!/bin/bash
cat <<EOF
Content-type: text/html
<html>
<head></head>
<body>
Today is $(date)
EOF
ssh -t -q jcrm16 ". ~/.profile;/opt/reuters/scripts/matt/adsuserlist"
echo "</body>"
echo "</html>"
但这并没有改变这样一个事实:使用ssh
是一个可怕的糟糕想法,你不应该这样做。
在任何情况下,您的原始脚本都应该有效。很可能它不起作用,因为ssh
本身在您的Web服务器进程使用时不起作用。
无论哪种方式,都要使用其他内容进行测试,而不是ssh
。
答案 1 :(得分:0)
您需要关闭<head>
块,并打开<body>
块,如下:
#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "<html>"
echo "<head></head>"
echo "<body>"
echo "Today is $(date)"
v=`ssh -t -q jcrm16 ". ~/.profile;/opt/reuters/scripts/matt/adsuserlist"`
printf "$v"
# echo $(printf "$v") << tried this did not work
echo "</body>"
echo "</html>"