从脚本向终端发送命令
如何在 Perl 脚本中向终端发送命令?
例如,如果我想在控制台中运行命令 mkdir $directory
,我应该在 perl 脚本中输入什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何在 Perl 脚本中向终端发送命令?
例如,如果我想在控制台中运行命令 mkdir $directory
,我应该在 perl 脚本中输入什么?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
对 http://perldoc.perl.org/functions/system 文档中的示例代码进行建模。 html:
Perl 可以在没有
system()
调用的情况下创建目录,但我假设您想做其他事情并且仅使用 mkdir 作为示例。Modeling off the sample code in the documentation at http://perldoc.perl.org/functions/system.html:
Perl can make directories without
system()
calls, but I assume you want to do other things and are just using mkdir as an example.由于 Perl 内置了
mkdir()
系统调用,因此您根本不需要使用system
命令:如果必须使用
system
>,以安全的方式这样做:这种形式的
system
语句(带有参数列表)避免了 shell 扩展的问题。Since Perl has the
mkdir()
system call built in, you don't need to use thesystem
command at all:If you must use
system
, do so the safe way:This form of the
system
statement (with a list of arguments) avoids the problems of shell expansion.使用 perl 命令而不是依赖 shell 命令。 Perl 可以做很多事情,如果它还没有内置,或者核心模块,它可能在 CPAN。
正如人们所提到的,
mkdir
可用,因此大部分 基本文件有关的命令。话虽如此,这里是 perl 中 shell 命令的污点:
您希望 perl 脚本:
使用
system
qx//
,或者反引号。
exec
。但通常情况下,您不会真的想使用exec
,因为上面链接中描述的原因。
open
使用 MODE-|
或|-
分别。Use perl commands instead of relying on shell commands. There are a great many things that perl can do, and if it is not already built in, or a core module, it's likely available on CPAN.
As people have mentioned,
mkdir
is available, and so are most of the basic file related commands.That being said, here's the dirt on shell commands in perl:
You want the perl script to:
Use
system
qx//
, orbackticks.
exec
. But usually, you'll not really want to useexec
, forreasons described in the link above.
open
with MODE either-|
or|-
, respectively.要从 perl 脚本执行任何系统命令,您需要使用带有反引号的系统命令,
例如,
在您创建目录的情况下,您需要键入
system(
mkdir $directory
); #note html 不显示反引号,但反引号位于 mkdir 之前和 $directory 之后它将在当前工作目录中以 $directory 的名称创建一个目录
For executing any system command from perl script you need use system command with a backtick
For e.g
In your case for creating a directory you need to type
system(
mkdir $directory
); #note html is not showing the backtick but backtick is place before mkdir and after $directoryIt will create a dir in current working dir in the name of $directory