bash의 배열에 문제가 있습니다. 나는 마지막 요소까지 convert 배열의 주먹 요소로부터 2 개의 배열을리스트에 반향시키고 싶다. room_minute 배열에 대해서도 마찬가지입니다.에코 2 배열 쉘 스크립트 목록
#! /bin/bash
#! /usr/bin/perl
declare -a data;
declare -a convert;
declare -a sala_minutos;
data=($(./Minutes.php 2> /dev/null | grep -P -w -o [0-9]\{2\}\.[0-9]\{2\}\.[0-9]\{2\} | awk -v FS=/ -v OFS=/ '{print $2,$1,$3}'));
room_minutes=($(./Minutes.php 2> /dev/null | grep -oP '(?<=room:)[0-9]+'))
for ((i=0; i< ${#data[*]}; i++));
do
convert=($(date -d "${data[i]} 10:00:00" +%s));
done
echo ${convert[*]} ${room_minutes[*]}
것을 제외 어레이 내부 :
데이터 = 09/03/16 09/01/16 09/02/16 09/03/16 09/04/16 09/05/16 09/06/16 09/07/16 09/08/16 09/09/16 09/10/16 09/11/16 09/12/16 09/13/16 08/25/16 08/26/16 08/27/16 08/28/16 08/29/16 08/30/16 08/31/16]
비밀 = 1472698800 1472785200 1472871600 1472958000 1473044400 1473130800 1473217200 1473303600 1473390000 1473476400 1473562800 1473649200 1473735600 1472094000 1472180400 1472266800 1472353200 1472439600 1472526000 1472612400
01 23,516,의 room_minutes = 11279 8465 4402 10380 8078 60 1 8422 34 11,112 12,567 13,988 7,339 686 5 8748 211 15 15927 7028] 미리
감사합니다.
잘못 여기에 꽤 많이있다 -로 시작하는이'foo는 = ($ (바))'실제로 배열을 채울 수있는 매우 버그 방법입니다. 예를 들어,'bar'가 공백을 포함하는'*'을 출력하면, 그것은 현재 디렉토리의 파일 이름 목록으로 대체 될 것입니다. 배열을 채우기 위해'read -a','readarray','mapfile' 또는 [BashFAQ # 1] (http://mywiki.wooledge.org/BashFAQ/001)'while' 루프를 사용하십시오. –
둘째로,'$ {foo [*]}'는 배열을 확장하는 방법으로 버그가 있습니다. '$ {foo [*]}'와 마찬가지로 glob 확장을 수행하지만 문자열 분할도 수행합니다. 따라서'foo = ("first * argument" "second * argument")',' "$ {foo [@]}"'('$ {foo [*]}'는'$ IFS'의 값과 현재 디렉토리에있는 파일의 수를 기반으로 예측할 수없는 숫자로 확장 될 것입니다. –
셋째,이 질문을 통해 예상되는 결과와 실제 결과가 어떻게 다른지 명확하지 않습니다. 다른 사람들이 (Minutes.php가 필요없이) 실행할 수있는 [MCVE] (http://stackoverflow.com/help/mcve) - ** 최소한의 완전하고 검증 가능한 ** 예 -를 작성하십시오. 문제를 해결하고 실제 및 예상 출력을 제공하십시오. –