2014-07-09 3 views
0

출력을 녹색으로 표시하는 작은 스크립트를 만들고 싶습니다. 예상대로 join('',@argv);가 동작하지 않고Perl은 모든 명령 줄 인수를 얻습니다.

#! /usr/bin/perl -w 
use Term::ANSIColor; 
my $prg = join(" ",@ARGV); 
print(color('green'). `$prg` . color('reset')); 

Unfortunateyl가 작동하지 않습니다 :이 썼다. 예를 들어 인수를 넘기는 경우 : "foo" "bar", 따옴표없이 foo bar이 표시됩니다.

이스케이프 따옴표를 제거하지 않고 모든 명령 줄 인수를 가져 오는 방법은 무엇입니까?

답변

7

당신은 쉘이 아니라 펄과 싸우고 있습니다. 시도하십시오

perl script.pl '"foo"' '"bar"' 
+0

셸에서 옵션을 관리하는 방법에 대한 POSIX 설명이 있습니까? 나는 심지어 C에서 (argc argv)를 통해서만 인수를 얻을 수 있다고 생각합니다. % 0 변수가있는 창에서와 같지 않습니다 ... 슬픈 – nowox