2013-06-29 48 views
0

我試圖確定是否存在符號鏈接。我認爲-L-f會這樣做,但它似乎沒有工作。如何確定sym鏈接是否存在

VHOST="/etc/apache2/sites-available/vhost.local"; 
if [ ! -L VHOST ]; then 
     ln -s /home/user/Ubuntu\ One/htdocs/vhosts/vhost.local VHOST; 
     a2ensite vhost.local; 
     echo " -vhost.local": 
fi 

應該創建符號鏈接,如果沒有一個已經....

+0

這個問題似乎是題外話,因爲它是關於太本地化 –

+2

這個問題應該關閉,因爲它是關於一個微不足道的語法錯誤,並不會幫助未來的訪問者。 – Gilles

回答

5

按照TEST(1)手冊頁:

-h FILE 
      FILE exists and is a symbolic link (same as -L) 
    -L FILE 
      FILE exists and is a symbolic link (same as -h) 

-h-L應該做的伎倆。但是,您不是針對變量$VHOST而是文字VHOST進行測試。這是錯誤。

所以,我想你的意思是說:

if [ ! -L "$VHOST" ]; then 
    ... 

此外你忘了一個$在ln -s

ln -s /home/user/Ubuntu\ One/htdocs/vhosts/vhost.local "$VHOST";