2009-05-23 77 views
2

我寫了一個shell腳本來使用lynx將HTML源代碼轉換爲純文本。在shell腳本中HTML到文本的轉換

這是:「未安裝Lyns」

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

現在,雖然在正確的目錄存在猞猁,和我通過正確的參數,我得到任何消息或(如果我評論第一個測試)「文件$ 1不存在!」。我不擅長sh,所以有人可以告訴我劇本有什麼問題嗎?

回答

4

我覺得第一,如果是錯誤的,應該用

if [ -f /usr/bin/lynx ] 
+2

我認爲第二種情況也是如此。 – 2009-05-23 15:16:39

+0

是的,當然:) – 2009-05-23 15:17:59

2

代替嘗試刪除「-f =」,保持它只是「-f」

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:曖昧REDI RECT

雖然

猞猁突降site.html>如果從控制檯

+0

你還沒有檢查過你提供了兩個文件名 - 所以$ 2是空的,'>'沒有說明在哪裏重定向輸出,所以它是一個模糊的重定向。順便說一句,在我的機器上,lynx安裝在/ usr/gnu/bin或/ usr/local/bin中(兩者都在我的PATH上)。 – 2009-05-23 16:45:14

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

如果有什麼它沒有安裝在/ usr/bin中運行site.txt工作正常/?如果由於某種原因它不可執行?