2

我编写了一个 shell 脚本来使用 lynx 将 HTML 源代码转换为纯文本。

这里是:

#!/bin/sh

if [ -f = "/usr/bin/lynx" ]
  then
    if [ -f = "$1" ]
      then
        lynx -dump $1 > $2
      else
        echo "File $1 does not exist!"
    fi
  else
    echo "Lynx is not installed!"
fi

现在,虽然 lynx 存在于正确的目录中,并且我传递了正确的参数,但我得到“Lyns 未安装!” 消息或(如果我评论第一个测试)“文件 $1 不存在!”。我不擅长 sh 所以有人可以告诉我脚本有什么问题吗?

4

4 回答 4

4

我认为第一个 if 是错误的,应该替换为

if [ -f /usr/bin/lynx ]
于 2009-05-23T15:15:26.987 回答
2

尝试删除“-f =”并保留它只是“-f”

于 2009-05-23T15:16:20.997 回答
0
LINKS=`which links`
if [ -x $LINKS ]; then
   ...
else
   ...
endif

如果它没有安装在 /usr/bin/ 中怎么办?如果由于某种原因它无法执行怎么办?

于 2009-05-23T16:35:34.213 回答
0

现在是这样的:

#!/bin/sh

if [ -f /usr/bin/lynx ]
  then
    if [ -f $1 ]
      then
        lynx -dump $1 > $2
      else
        echo "File $1 does not exist!"
    fi
  else
    echo "Lynx is not installed!"
fi

测试的问题已经消失了,但现在我收到了这个错误:

第 7 行:$2:不明确的重定向

虽然

如果从控制台运行 lynx -dump site.html > site.txt 工作正常

于 2009-05-23T16:29:25.180 回答