免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1831 | 回复: 5
打印 上一主题 下一主题

Perl: 怎么实现在脚本参数里使用脚本里面的变量? [复制链接]

论坛徽章:
2
白羊座
日期:2013-10-29 13:29:222015亚冠之全北现代
日期:2015-10-25 08:13:02
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-13 19:56 |只看该作者 |倒序浏览
RT
比如:

test.pl
#!/usr/bin/perl

my $n = 1;
my $cmd="echo";
my $arg = $ARGV[0];
while ($n < 10) {
    system("$cmd $arg");
    $n++;
}


执行:
# perl test.pl "\$n"

[ 本帖最后由 miniqq 于 2009-11-14 10:43 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-11-14 10:17 |只看该作者

回复 #1 miniqq 的帖子

是這個麼?
push @ARGV,'var';
$var = 'Hello World';
print ${$ARGV[0]};

论坛徽章:
2
白羊座
日期:2013-10-29 13:29:222015亚冠之全北现代
日期:2015-10-25 08:13:02
3 [报告]
发表于 2009-11-14 10:41 |只看该作者

回复 #2 lokchungk 的帖子

楼上的不是我想要的,
我是想要在命令行参数里使用脚本里的变量。比如说有一个参数为调用外部脚本而把本身里面的变量值传给那个外部脚本。

test1.pl -c 'test2.pl  "\$n" '    $n是test1.pl里定义的变量,把它传给test2.pl

论坛徽章:
0
4 [报告]
发表于 2009-11-14 11:18 |只看该作者
原帖由 miniqq 于 2009-11-13 19:56 发表
test.pl
#!/usr/bin/perl

my $n = 1;
my $cmd="echo";
my $arg = $ARGV[0];
while ($n < 10) {
    system("$cmd $arg");
    $n++;
}


执行:
# perl test.pl "\$n"


那請問您期望這個有什麼輸出?
是這樣嗎?
1
2
3
4
5
6
7
8
9


如果是的話,根據您的寫法,可以寫成這樣.
push @ARGV, '$n';
$n = 1;
$cmd="echo";
while ($n < 10) {
    $arg = eval $ARGV[0];
    system("$cmd $arg");
    $n++;
}


這樣寫也行
push @ARGV, 'n';
$n = 1;
$cmd="echo";
while ($n < 10) {
    system("$cmd ${$ARGV[0]}");
    $n++;
}


或者您是想用our.

對不起, 我理解能力比較差.
hope this help

[ 本帖最后由 lokchungk 于 2009-11-14 11:44 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-11-15 11:20 |只看该作者
解決了?

论坛徽章:
2
白羊座
日期:2013-10-29 13:29:222015亚冠之全北现代
日期:2015-10-25 08:13:02
6 [报告]
发表于 2009-11-15 17:32 |只看该作者
看来我的需求有问题,算了,结贴!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP