shell 脚本中 HTML 到文本的转换
我编写了一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我认为第一个 if 是错误的,应该替换为
I think the first if is wrong and should be replaced with
尝试删除“-f =”并保留“-f”
Try removing the "-f =" and keeping it just "-f"
现在就像这样:
测试的问题消失了,但现在我收到此错误:
第 7 行:$2:模糊的重定向,
尽管
lynx -dump site.html > 如果从控制台运行,site.txt 工作正常
It's like that now:
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
如果没有安装在/usr/bin/下怎么办? 如果由于某种原因它无法执行怎么办?
What if it's not installed in /usr/bin/? What if for some reason it's not executable?