我如何编写脚本来输出 html 文件?

我如何编写脚本来输出 html 文件?

我在这个脚本中做错了什么?

#!/bin/bash

cat > /tmp/flash-viewer.htm <<- _EOF_
<HTML><HEAD><TITLE>Flash Viewer</TITLE></HEAD><BODY>
<object width=\"1280\" height=\"720\" data=\"$1\"></object>
</BODY></HTML>
_EOF_

if [ -n $BROWSER ]; then
  $BROWSER '/tmp/flash-viewer.htm'
elif which xdg-open > /dev/null; then
  xdg-open '/tmp/flash-viewer.htm'
elif which gnome-open > /dev/null; then
  gnome-open '/tmp/flash-viewer.htm'
else
  echo "Could not detect the web browser to use."
fi

该脚本出现以下错误:

joe@U13:~/Script$ ./html-flash-viewer.sh "/home/joe/video.swf"
/tmp/flash-viewer.htm: line 1: <HTML><HEAD><TITLE>Flash: command not found
/tmp/flash-viewer.htm: line 2: <object: command not found
/tmp/flash-viewer.htm: line 3: </BODY></HTML>: No such file or directory

我是不是遗漏了某种转义序列?我已经尝试使用 \ 来转义 LT/GT 括号,并将 html 括在单引号和双引号中。每个方法都会产生类似的错误。

答案1

如果$BROWSER为空,[ -n $BROWSER ]则变为[ -n ]。测试是否-n具有非零长度,这始终为真。

然后$BROWSER '/tmp/flash-viewer.htm'执行,实际上只是 '/tmp/flash-viewer.htm'如果$BROWSER为空。

使用

if [ -n "$BROWSER" ]; then

所以总会有第二个论点。

要找出浏览器的确切路径,请使用which <browser>,将<browser>其中的 替换为您尝试打开文件的浏览器。

例如,

which firefox

将返回/usr/bin/firefox,因此你可以执行以下操作:

BROWSER=/usr/bin/firefox

相关内容