首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >perl mktemp和echo

perl mktemp和echo
EN

Stack Overflow用户
提问于 2011-05-15 21:08:23
回答 3查看 2.3K关注 0票数 0

我正在尝试通过命令行临时文件创建在临时文件中放入一些单词,但在临时文件中没有超过单词

代码语言:javascript
复制
#!/usr/bin/perl -w
system ('clear');
$TMPFILE = "mktemp /tmp/myfile/devid.XXXXXXXXXX";
$echo = "echo /"hello world/" >$TMPFILE";
system ("$TMPFILE");
system ("$echo");

请帮助解决这个问题

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-15 21:20:04

要捕获mktemp输出的名称,请执行以下操作:

代码语言:javascript
复制
chomp($TMPFILE = `mktemp /tmp/myfile/devid.XXXXXXXXXX`);

但是Perl可以在不借助shell的情况下完成您正在做的所有事情。

票数 4
EN

Stack Overflow用户

发布于 2011-05-15 21:19:23

尽量避免使用perl脚本中的外部命令。

在这种情况下,可以使用:File::Temp模块,请参见this

票数 3
EN

Stack Overflow用户

发布于 2011-05-15 21:43:20

下面是其他人给出的建议的具体演示:在可能的情况下,直接使用Perl而不是调用system。此外,您应该养成在Perl脚本中包含use strictuse warnings的习惯。

代码语言:javascript
复制
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";
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6008567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档