내 쉘 스크립트에서쉘 스크립트에서 Perl 배열 요소를 처리하려면 어떻게해야합니까? 펄에서</p> <p>: 예를 들어
@array = (1,2,3);
system ("/tmp/a.sh @array");
는 어떻게 쉘 스크립트에서이 배열을 처리하나요? 인수를 받기 위해 쉘 스크립트를 처리하는 방법과 쉘 스크립트에서 배열 변수를 사용하는 방법은 무엇입니까? 이 같은
내 쉘 스크립트에서쉘 스크립트에서 Perl 배열 요소를 처리하려면 어떻게해야합니까? 펄에서</p> <p>: 예를 들어
@array = (1,2,3);
system ("/tmp/a.sh @array");
는 어떻게 쉘 스크립트에서이 배열을 처리하나요? 인수를 받기 위해 쉘 스크립트를 처리하는 방법과 쉘 스크립트에서 배열 변수를 사용하는 방법은 무엇입니까? 이 같은
이 :
/tmp/a.sh 1 2 3
당신은 단순히 당신이 시스템에 전달 무엇을 인쇄하여이를 볼 수 있습니다 :
my @array = (1,2,3);
system ("/tmp/a.sh @array");
쉘 명령과 같습니다
print "/tmp/a.sh @array";
a.sh
쉘 인수의 다른 집합처럼 그들을 처리해야합니다.
안전을 위해, 당신은 쉘을 무시하고 직접 인수로의 배열을 전달해야합니다
system "/tmp/a.sh", @array;
을이 별도의 인수로보다는 공간 구분 된 문자열로 @array
의 각 요소를 전달 하.
my @array = ("Hello, world", "This is one argument");
system "./count_args.sh @array";
system "./count_args.sh", @array;
count_args.sh
은 다음과 같습니다 :
#!/bin/sh
echo "$# arguments"
당신이 6 개 인수를 얻는 첫 번째 그것이 얻는 두 번째로 그를 볼 수 있습니다 @array
의 값이 예를 들어, 공백을 포함 할 경우에 중요합니다
쉘 프로그램에 인수 처리에 짧은 튜토리얼 2. here를 찾을 수 있습니다.
어쨌든, 왜 펄에 하나 개의 프로그램을 작성하고 쉘 하나? 2 개의 언어를 사용하기 위해 복잡성이 증가하고 쉘에는 디버거가 없습니다. 둘 다 Perl로 작성하십시오. 더 나은 방법은 Perl 프로그램에서 함수로 작성하는 것입니다.
: 펄
: 쉘에서
@a=qw/aa bb cc/;
system("a.sh ".join(' ',@a));
(a.sh) :
#!/bin/sh
i=1;
while test "$1"
do
echo argument number $i = $1
shift
i=`expr $i + 1`
done
Perl의 시스템 목록 형식을 사용하는 것이 좋습니다. 'system ('a.sh', @a)' –
당신은 실제로 인자의 쉘 보간을 원하지 않는 한'system' *의리스트 형식을 사용하는 것이 낫습니다. 이 경우 코드가 필요 없게 만들고 '시스템'목록 형식을 사용할 수 있도록 코드를 설계하는 것이 좋습니다. – daotoad
한 번 모든 배열 요소를 전달하려면 :
my @array = qw(1 2 3);
system("/tmp/a.sh". join(" ", @array));
배열 요소를 전달하려면 하나의 하나
my @array = qw(1 2 3);
foreach my $arr (@array) {
system("/tmp/a.sh $arr");
}
는 쉘 스크립트는 [email protected]
에 인수를받습니다 : 당신은 좀 더 제공해야 할거야
#!/bin/bash
echo "${@:2:1}" # second argument
args=([email protected])
echo "${args[2]}" # second argument
echo "${@: -1}" # last argument
echo "${@:$#}" # last argument
:
배쉬에서, 그들은 또한 배열 첨자 또는 슬라이스를 사용하여 액세스 할 수 있습니다 세부 묘사. "핸들"이란 무엇을 의미합니까? 쉘 스크립트가 인수로 얻게 될 것으로 예상되는 것은 무엇입니까? – Schwern
perl 배열 인수를 recive하는 방법을 모르겠다 – joe
bash 스크립트에 모든 배열 요소를 전달 하시겠습니까? – Space