我是perl中的新手。我是在AIX系統上的Perl腳本嘗試下面的命令..在perl中發現不完整的語句錯誤
my @filename= ("finame_name");
system("find $DIRPATH -name '@filename' -mtime +7 -xdev -exec rm -f {} \;");
我得到「發現:不完整的聲明」的錯誤。即使我試圖通過放置兩個和三個反斜槓(\\
)來解決它,但無法解決它。
有什麼建議嗎?
我是perl中的新手。我是在AIX系統上的Perl腳本嘗試下面的命令..在perl中發現不完整的語句錯誤
my @filename= ("finame_name");
system("find $DIRPATH -name '@filename' -mtime +7 -xdev -exec rm -f {} \;");
我得到「發現:不完整的聲明」的錯誤。即使我試圖通過放置兩個和三個反斜槓(\\
)來解決它,但無法解決它。
有什麼建議嗎?
這似乎並非是一個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);
你的回答幫了我。我修改了這些命令... system「find $ DIRPATH -name'@ filename'-mtime +7 | -xargs rm -f {} \;」; –
我不熟悉AIX的find,但是有一些查找變體需要路徑參數。與GNU find不同,它在缺少路徑時搜索當前目錄,這些查找命令需要指定顯式路徑。既然你還沒有表現出$DIRPATH
,它可能是空的,所以你可能有
find -name ...
,而不是
find /some/path -name ...
這就是爲什麼你應該總是使用'使用warnings'。嘗試打印你的系統命令,看看它是否是你認爲的。我懷疑你忘記了'$ DIRPATH'是一個Perl變量。 – TLP
'find'命令是否可以在cmdline上工作? –
爲什麼你使用數組作爲文件名? – Flimzy