我需要在几秒钟内找到文件的年龄,但是当我给出Perl行时:
perl -e ' my @st=stat("$name"); print time - $st[9];'
来自Bash的变量“。”在文件名中,它将找不到该文件并改为打印systime。否则,如果我创建一个名称为“某事”的文件,它的效果非常好。
我尝试用\来逃避角色,但这不起作用。我真的不知道Perl,我不知道如何解决这个问题。
感谢您的帮助!
(请不要建议任何BASH唯一的解决方法,这里的很多东西都是旧的,截断的......)
编辑:我发现了一种解决方法,但由于我是新手,因此我无法回答自己的问题,所以这里是:
所以我终于找到了解决方法。
您可以在Bash中导出变量:
export name=".file.txt"
然后从Perl中调用它:$ENV{name}
它运作得很好。
编辑2:
出口创意只是一个临时解决方案。更好的是使用单引号作为perreal建议。
答案 0 :(得分:5)
您需要将shell变量放在单引号之外:
perl -e ' my @st=stat("'"$name"'"); print time - $st[9];'
或通过参数传递:
perl -se 'my @st=stat("$name"); print time - $st[9];' -- -name="$name"