for 루프에 사용되는 변수가 변수 자체로 구성될 수 있다면 리스트도 가능합니까?

for 루프에 사용되는 변수가 변수 자체로 구성될 수 있다면 리스트도 가능합니까?

만들려고 해요스크립트거의물건얻다이전에 정리됨그 안에 변수에 저장해야 하는 부울 값을 남겼습니다. 마지막 루프를 통해 실행하면 완료됩니다.

내가 말하는 내용의 마지막 부분은 다음과 같이 읽기 어려운 버전입니다.

                         [↑continues on top↑]
var5="$(some long operation that has different results on different systems   )"
var6="$(bc of escaping or slighly different variations on the basic set of    )"
var7="$(UNIXy commands preloaded on every system's minimal installation       )"
var8="$(e.g: <grep> Um…what else…oh yeah!  The output of these is 1 or 0  

답변1

번호가 매겨진 변수 대신 배열을 사용하십시오.

entries=(
    "$(some long operation that has different results on different systems   )"
    "$(bc of escaping or slighly different variations on the basic set of    )"
    "$(UNIXy commands preloaded on every system's minimal installation       )"
    "$(e.g: <grep> Um…what else…oh yeah!  The output of these is 1 or 0  

답변2

${!name}변수 간접 구문을 사용해야 합니다 .

Bash는 나머지 인수로 구성된 변수 값을 변수 이름으로 사용합니다.

그래서 이것은 작동합니다 :

    varnames='var1 var2 ... var8'
    for varname in $varnames
    do
        if [ "${!varname}" ]
        ...

이식성은 각 환경의 bash 버전에 따라 다릅니다.

관련 정보