我试图通过命令行在temp文件中添加一些单词 已创建临时文件但未在tempfile中过去的单词
#!/usr/bin/perl -w
system ('clear');
$TMPFILE = "mktemp /tmp/myfile/devid.XXXXXXXXXX";
$echo = "echo /"hello world/" >$TMPFILE";
system ("$TMPFILE");
system ("$echo");
请帮助解决此问题
答案 0 :(得分:3)
尽可能避免使用perl脚本中的外部命令。
在这种情况下,您可以使用:File::Temp
模块,请参阅this
答案 1 :(得分:2)
要捕获mktemp输出的名称,请改为:
chomp($TMPFILE = `mktemp /tmp/myfile/devid.XXXXXXXXXX`);
但是Perl可以在不诉诸shell的情况下完成你正在做的所有事情。
答案 2 :(得分:2)
以下是其他人给你的建议的具体演示:在可能的情况下,直接使用Perl而不是调用system
。此外,您应养成在Perl脚本中包含use strict
和use warnings
的习惯。
use strict;
use warnings;
use File::Temp;
my $ft = File::Temp->new(
UNLINK => 0,
TEMPLATE => '/tmp/myfile/devid.XXXXXXXXXX',
);
print "Writing to temp file: ", $ft->filename, "\n";
print $ft "Hello, world.\n";