2013-11-23 45 views
0

我是perl中的新手。我是在AIX系統上的Perl腳本嘗試下面的命令..在perl中發現不完整的語句錯誤

my @filename= ("finame_name"); 
system("find $DIRPATH -name '@filename' -mtime +7 -xdev -exec rm -f {} \;"); 

我得到「發現:不完整的聲明」的錯誤。即使我試圖通過放置兩個和三個反斜槓(\\)來解決它,但無法解決它。

有什麼建議嗎?

+2

這就是爲什麼你應該總是使用'使用warnings'。嘗試打印你的系統命令,看看它是否是你認爲的。我懷疑你忘記了'$ DIRPATH'是一個Perl變量。 – TLP

+0

'find'命令是否可以在cmdline上工作? –

+0

爲什麼你使用數組作爲文件名? – Flimzy

回答

0

這似乎並非是一個Perl的問題都沒有,但如何有問題你打電話給find。一些調試添加到您的perl腳本,看到正在執行什麼命令,然後運行直接從外殼該命令,和調試這種方式:

my @filename= ("finame_name"); 
my $command = "find $DIRPATH -name '@filename' -mtime +7 -xdev -exec rm -f {} \;"; 
warn "Executing '$command'\n"; 
system($command); 
+1

你的回答幫了我。我修改了這些命令... system「find $ DIRPATH -name'@ filename'-mtime +7 | -xargs rm -f {} \;」; –

0

我不熟悉AIX的find,但是有一些查找變體需要路徑參數。與GNU find不同,它在缺少路徑時搜索當前目錄,這些查找命令需要指定顯式路徑。既然你還沒有表現出$DIRPATH,它可能是空的,所以你可能有

find -name ... 

,而不是

find /some/path -name ... 
相關問題