일부 값으로 채워진 배열을 만들려고합니다. 그러나 나는 그것을 어떻게하는지 모른다. 아래에서 시도했지만 작동하지 않았습니다.Bash 스크립팅 : for 루프 내에서 배열 채우기
내 코드 :
i=0
for c in colors; do
array[$i]=$c
echo {$c[$i]}
i=`expr $i + 1`
done
참고 : "색"값의 목록을 반환합니다 "PS -ef"명령의 일종이다. 예를 들어, "파란색, 빨간색, 노란색"값이 있습니다. 당신의 색상이 하나에-A에 오는 경우
array=($(command))
정확히 어떻게'colors'리스트가 반환되는지는 중요합니다. 그들이 일대일로 반환된다면, 문자열 분리 (문자열 분리 (string-splitting)보다 더 확실한 방법을 사용할 수 있습니다 (허용되는 대답이 어떤 것인지, 예를 들어 변경됩니다). ,''현재 디렉토리의 파일 목록에 색상''','light'와'magenta'의 두 항목에 대한'light magenta '색상). –
그건 그렇고, bash에서'((++ i))'는'i = $ (expr $ i + 1)'을 작성하는 현대적인 방법입니다. –
... 그리고 코드에서 완전히 작동하지 않는 유일한 방법은 (모범 사례 위반과 달리)'$ {c [$ i]} '및'in colors'대신'{$ c [$ i]} ' '$ colors'보다는''. –