如何将我的shell脚本转换为Perl?

时间:2016-04-22 05:59:26

标签: perl

我有一个shell脚本:

#!usr/bin/bash
branch_name=$1
task_name=$2
createviewset ccm -b $branch_name -t $task_name
source setenv $task_name
rest of the code

现在我想将此脚本转换为Perl脚本。我怎样才能做到这一点?到目前为止,我在代码中写了但这段代码似乎不起作用。

!/usr/bin/perl
use warnings;
use strict;
my branch_name;
my task_name;
createviewset ccm -b $branch_name -t $task_name 
source setenv $task_name 

这里createviewset是我在这里调用的现有脚本。

1 个答案:

答案 0 :(得分:3)

您应该访问http://perlmaven.com/(提供多种语言版)或http://learn.perl.org/,以便先了解一些Perl。

您的shell脚本不需要复制命令行值。您还使用了#!usr / bin / bash,因为路径是/ usr / bin / bash或(更常见)/ bin / bash:

#!/bin/bash
createviewset ccm -b $1 -t $2
source setenv $2
rest of the code

Perl将所有命令行参数分配给the array @ARGV。此示例打印您的两个参数:

#!/usr/bin/perl
print $ARGV[0];
print $ARGV[1];

请注意,编号从0开始,而不是1,在bash脚本中以$ 1开头。

下一部分是在Perl中运行外部(shell)命令:使用the system command

#!/usr/bin/perl
use strict;
use warnings;

system 'createviewset','ccm','-b',$ARGV[0],'-t',$ARGV[1];
system 'source','setenv',$ARGV[1];

请注意, source 命令不起作用,因为Perl脚本不是shell脚本,并且不能包含" Bash脚本。我感谢您尝试使用Perl解决问题,但看起来Bash是更好的工具。