1
배열 요소의 값을 인쇄하는 for 루프가있는 셸 스크립트가 있습니다. 배열 크기는 2이지만 해당 배열로 for 루프를 실행할 때 출력이 적절하지 않습니다. 여기 셸 스크립트의 문제점
쉘 스크립트입니다 대신 출력을주는 이제#!/bin/bash
arry=$(ls /home/developer/.ssh/ | grep "\.pub")
declare -a ARR
i=0
for key in $arry
do
ARR[i]=$(echo $key | sed 's/.pub//g')
i=$((i+1))
done
echo ${#ARR[@]}
## the below for loop is not iterating as expected
for pri in $ARR
do
echo $pri
done
2
a
heroku
위의 코드는 생성 : 위의 쉘 코드와 뭐가 문제
2
a
?
은 내가 당신이 ls
의
답변을 주셔서 감사합니다. 그러나 내 스크립트의 잘못된 점을 설명해 주시겠습니까? – Viren
@ user1328293 : $ {ARR [@]} "의 pri는'for pri 대신 배열을 반복하는 올바른 방법입니다. $ ARR에서. –
보다 구체적으로 말하면, '$ ARR'은 ARR의 * 첫 번째 요소 *로 확장되므로 첫 번째 요소를 반복합니다. ''$ {ARR [@]} ''는 모든 요소를 얻는 올바른 방법입니다. –