shell 脚本中 HTML 到文本的转换

发布于 2024-07-20 08:27:38 字数 412 浏览 7 评论 0原文

我编写了一个 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 所以有人可以告诉我脚本有什么问题吗?

I wrote a shell script to convert HTML source to plain text using lynx.

Here it is:

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

Now, although lynx exists in the right directory, and I pass correct arguments I get either "Lyns is not installed!" message or (if I comment the first test) "File $1 does not exist!". I'm not to good at sh so could someone tell me what is wrong with the script?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

聚集的泪 2024-07-27 08:27:38

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

if [ -f /usr/bin/lynx ]

I think the first if is wrong and should be replaced with

if [ -f /usr/bin/lynx ]
霓裳挽歌倾城醉 2024-07-27 08:27:38

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

Try removing the "-f =" and keeping it just "-f"

东走西顾 2024-07-27 08:27:38

现在就像这样:

#!/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 工作正常

It's like that now:

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

And the problem with tests is gone, but now I get this error:

line 7: $2: ambiguous redirect

although

lynx -dump site.html > site.txt works fine if run from console

没企图 2024-07-27 08:27:38
LINKS=`which links`
if [ -x $LINKS ]; then
   ...
else
   ...
endif

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

LINKS=`which links`
if [ -x $LINKS ]; then
   ...
else
   ...
endif

What if it's not installed in /usr/bin/? What if for some reason it's not executable?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文