2012-08-24 46 views
0

我嘗試使用ssh創建符號鏈接。這裏是我使用的命令。-bash語法錯誤「fi」

cd /home 
for homedir in * 
do if [ -d ${homedir} ] 
ln -s /etc/cpbackup-exclude.conf ${homedir}/cpbackup-exclude.conf 
fi 
done 

當我進入fi後,我得到這個錯誤。 「-bash:語法錯誤附近意外的標記‘科幻’

我不知道什麼是錯的

謝謝您的幫助

+0

您需要正確的縮進。 – squiguy

+3

'if ... then ... fi' – kev

+0

對不起,我是ssh的新手。你什麼意思? – BostonBB

回答

3

if命令的語法是:

if test-commands; then 
    consequent-commands; 
[elif more-test-commands; then 
    more-consequents;] 
[else alternate-consequents;] 
fi 

添加關鍵字then到您的代碼:

if [ -d ${homedir} ] 
then 
    ln -s /etc/cpbackup-exclude.conf ${homedir}/cpbackup-exclude.conf 
fi 

順便說一句,你可以縮進你的代碼,使其易於閱讀。

+0

謝謝。 現在我得到這個錯誤:bash:In:command not found – BostonBB

+1

@BostonBB:你肯定弄錯了你的'$ PATH'。我們沒有足夠的信息來了解發生的情況。 'ln'是一個基本的命令,它應該在'/ bin'和/或'/ usr/bin'中可用。 –

1

我想你可能需要在if語句中的條件之後的關鍵字then

查看文檔here