2014-03-27 60 views
0
if 
[ -d patch/tempatch ]; 
then; 
cd patch/tempatch/; 

for i in `ls`; 
do; 
tar -xvf $i; 
rm -f $i; 
done; 

for i in `ls`; 
do; 
cd $i; 
cp -R files/* patch/SP02JUL11/files/; 
cd ..; 
rm -Rf $i; 
done; 

else; 
echo "directory not found"; 
fi 

所有單個行的命令「」0403-057語法錯誤:`;'不受與分離預期

在執行它拋出0403-057 Syntax error: ; is not expected

誰能幫助這個嗎?

謝謝

+0

第一個好的步驟是縮進代碼。那麼我相信,找出問題所在是很容易的。 – fedorqui

+0

如果您在Windows中創建了代碼,並且已移至linux,請執行'dos2unix myScript'。祝你好運。 – shellter

+0

我用Java編寫caode和 – user3468019

回答

1

它沒有指定其外殼interpereting這個劇本......從錯誤代碼,我以爲這是KSH ...

從錯誤信息,我相信這個問題是, then後,elsedoKSH不接受;

但是,只是出於好奇,我也只是在我的Linux機器上安裝KSH。 它在版本「93u + 2012-08-01」。 你的腳本運行的很好,沒有語法錯誤,在這裏... 也許你正在運行一個不同的(可能是較舊的)版本的shell,或者一個不同的shell ...你應該明確指定你正在使用的shell ... :-)。

+0

我使用KSH的Shell僅 – user3468019

+0

操作系統紅帽企業Linux服務器版本6.3(聖地亞哥)在UNIX系統中執行 – user3468019

+0

這是很奇怪的,我在一個CentOS 6.5版。但是,如果你在不同的行上輸入每個命令(就像我從代碼中看到的那樣),你可以避免使用分號......分號用於在同一行上分隔命令......特別是它們在*之前被請求* ','then','else',但是在相同的命令後他們被禁止*我會說ksh(但是bash也是)非常'挑剔'... :-) – MarcoS

相關問題