如何在Perl中处理文件 - 从Bash处理变量:消失"." 字符

EAT*_*IES 1 bash perl unix-timestamp

我需要在几秒钟内找到文件的年龄,但是当我给出Perl行时:

perl -e ' my @st=stat("$name"); print time -  $st[9];'
Run Code Online (Sandbox Code Playgroud)

来自Bash的变量"." 在文件名中,它将找不到该文件并改为打印systime.否则,如果我创建一个名称为"某事"的文件,它的效果非常好.

我尝试用\来逃避角色,但这不起作用.我真的不知道Perl,我不知道如何解决这个问题.

谢谢您的帮助!

(请不要建议任何BASH只有解决方法,这里的很多东西都是旧的,截断的......)

编辑:我发现了一个解决方法,但由于我是一个新手,我无法回答我自己的问题,所以这里是:

所以我终于找到了解决方法.

您在Bash中导出变量:

export name=".file.txt"
Run Code Online (Sandbox Code Playgroud)

然后从Perl中调用它,如下所示: $ENV{name}

它工作得很好.

编辑2:

出口创意只是一个临时解决方案.更好的是使用单引号作为perreal建议.

per*_*eal 5

您需要将shell变量放在单引号之外:

perl -e ' my @st=stat("'"$name"'"); print time - $st[9];'
Run Code Online (Sandbox Code Playgroud)

或通过参数传递:

perl -se 'my @st=stat("$name"); print time - $st[9];' -- -name="$name"
Run Code Online (Sandbox Code Playgroud)