Преобразование HTML в текст в сценарии оболочки - PullRequest
2 голосов
/ 23 мая 2009

Я написал сценарий оболочки для преобразования исходного кода HTML в простой текст, используя lynx.

Вот оно:

#!/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 не существует!». Я не очень хорош в ш, так что кто-то может сказать мне, что не так со сценарием?

Ответы [ 4 ]

4 голосов
/ 23 мая 2009

Я думаю, что первое, если не так и должно быть заменено на

if [ -f /usr/bin/lynx ]
2 голосов
/ 23 мая 2009

Попробуйте удалить "-f =" и оставить только "-f"

0 голосов
/ 23 мая 2009
LINKS=`which links`
if [ -x $LINKS ]; then
   ...
else
   ...
endif

Что если он не установлен в / usr / bin /? Что если по какой-то причине он не исполняется?

0 голосов
/ 23 мая 2009

Теперь так:

#!/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 работает нормально, если запускается из консоли

...