gpt4 book ai didi

perl - Perl在QX中使用Find

转载 作者:行者123 更新时间:2023-12-03 08:00:29 24 4
gpt4 key购买 nike

我正在编写一个Perl脚本,该脚本需要SSH到众多远程服务器以执行一些gzip压缩日志文件。在下面的代码行中,我不断收到此错误,并努力确定是什么原因造成的。我得到的错误是;

bash: -c: line 0: syntax error near unexpected token `('
bash: -c: line 0: `cd /appdata/log/cdmbl/logs/; echo cd /appdata/log/cdmbl/logs/; find . -type f ( -iname '*' ! -iname '*.gz' ) -mmin +1440 ;; exit 0'

当然,从错误中可以看出,我要写的行是:
my $id = qx{ssh -q $cur_host "cd $log_path; echo cd $log_path; find . -type f \( -iname '*' ! -iname '*.gz' \) -mmin +1440 \;; exit 0"};

我在这里忽略了导致意外 token '('问题的东西吗?
接收?

注意:我从查找中删除了-exec,以便可以首先查看是否可以解决此问题。

谢谢。

最佳答案

您需要反斜杠 shell 括号。在双引号中使用单反斜杠是不够的,Perl会删除反斜杠。使用双反斜杠\\(

关于perl - Perl在QX中使用Find,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25887658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com