저는 약 10개 요소의 배열을 포함하는 스크립트를 작성하고 있습니다. 내가 해야 할 일은 스크립트가 사용자로부터 최소 0개의 요소와 최대 10개의 (배열) 요소를 받아들이고 해당 배열 요소가 말하는 모든 작업을 수행하는 것입니다.
예
대량 -
array0=( [1]=echo "Foo" [2]=export CCACHE=true [3]=export FOO_FLAG=true [4]=unset BAR_FLAG )
그러면 스크립트는 다음과 같은 입력을 읽습니다.
read -a array0
그러다가 그런 일이 -
for i in ${array0[@]}
do
access each element as $i. . .
done
출력은 다음과 같아야 합니다.
Type the elements - 1 4 2
Foo
*unset BAR_FLAG
*export CCACHE=true*
하지만 안타깝게도 저는 그렇게 할 수 없습니다. for/do 루프에 오류가 있어야 합니다.
누구든지 도움을 줄 수 있다면...
답변1
#!/bin/bash
array0=('echo Foo' 'export CCACHE=true' 'export FOO_FLAG=true' 'unset BAR_FLAG')
echo -n "Enter the elements: "
read -e line
for index in $line;do
${array0[index]}
done
용법:script.sh
배열의 첫 번째 인덱스는 입니다 0
.