如何在Perl中处理文件 - 从Bash处理变量:消失“。”字符

时间:2013-07-17 07:27:51

标签: perl bash unix-timestamp

我需要在几秒钟内找到文件的年龄,但是当我给出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建议。

1 个答案:

答案 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"