在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2287|回复: 8

[求助] perl 从STDIN读取内容并执行[已解决]

[复制链接]
发表于 2020-12-12 18:53:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 e07610230 于 2020-12-14 08:51 编辑

想用perl实现交互功能,比如从STDIN读取用户输入的内容并以指令的形式执行,改怎么写?
比如:
“Please enter your command:”
print “HAHA!”
然后perl读取上米面的print并执行它。。。
不知道我有没有描述清楚。
发表于 2020-12-12 23:02:37 | 显示全部楼层
#!/bin/env perl

use 5.010;
use strict;
use warnings;

say "Please enter your command:";
my $cmd = <>;
#Must check hack problem!
# if bad guy put cmd 'rm -rf /*' ?
# use taint mode!!!
# perl -T cmd.pl
# use regex to parse cmd to check~
eval $cmd;
#check some exception
say $@ if $@;
发表于 2020-12-12 23:04:33 | 显示全部楼层




  1. #!/usr/bin/perl

  2. use warnings;
  3. use strict;

  4. print "Please enter your command:";
  5. my $input = <STDIN>;

  6. print "$input\n";


复制代码


发表于 2020-12-13 07:28:54 | 显示全部楼层
very good
 楼主| 发表于 2020-12-13 11:13:11 | 显示全部楼层


A1985 发表于 2020-12-12 23:02
#!/bin/env perl

use 5.010;


while(1) {    print "Please enter your command: ";
    my $cmd = <>;
    eval $cmd;
}



执行后好像eval没起作用?
image.png
发表于 2020-12-13 17:55:48 | 显示全部楼层


e07610230 发表于 2020-12-13 11:13
while(1) {    print "Please enter your command: ";
    my $cmd = ;
    eval $cmd;


语法都不对,直接就是输出空,print "xxx";
 楼主| 发表于 2020-12-14 08:48:03 | 显示全部楼层


A1985 发表于 2020-12-13 17:55
语法都不对,直接就是输出空,print "xxx";


谢了~
发表于 2020-12-15 11:58:03 | 显示全部楼层
路过学习,很实用,谢谢分享
发表于 2020-12-17 20:04:09 | 显示全部楼层
多谢
分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-19 07:15 , Processed in 0.025902 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表