我有一个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
是我在这里调用的现有脚本。
答案 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是更好的工具。