2013-11-26 4 views
1

4 개의 변수를 포함하는 스크립트가 있습니다. 이 4 개의 변수의 값을 취하여 가장 낮은 값을 갖는 함수의 이름을 반환하는 함수가 필요합니다. 그래서 내가 가지고 있다고 가정 해 봅시다 : var3 사람이 도와 드릴까요 : var1=55 var2=71 var3=30 var4=42 다음 내가 그것을 대답으로 돌아가시겠습니까? 나는 그것을 해결하는 가장 쉬운 방법이 필요하지만, 어떤 일하는 해결책을 고맙게 생각합니다.Bash 스크립팅 : 가장 낮은 값의 변수 찾기

+4

이것은 집입니까? 지금까지 어떤 코드를 작성 했습니까? 어떻게 입력을 수집합니까? 더 구체적으로 질문하십시오. 코드를 게시하십시오. 독자들에게 당신이 시도한 것을 알리십시오. 이것은 자유로운 대답을위한 장소가 아닙니다. – KeithSmith

+0

조금 힌트 : http://stackoverflow.com/questions/12882089/bash-variable-name-from-variable – PasteBT

+0

아니 숙제가 아니야. ! '#/빈/bash는 X = 12 Y = 35 Z = 7 Q = 24 VA = 0 VB = 0 NA = 0 주의 : 코드는 내가 지금까지에 와서 한 = 0 minval = 0 minname = 0 if (($ x <$ y)); 그러면 va = $ x na = x; 그렇지 않으면 va = $ y na = y; fi if (($ z <$ q)); 그렇다면 vb = $ z nb = z; else vb = $ q nb = q; fi if (($ va <$ vb)); minval = $ va minname = $ na; 그렇지 않으면 minval = $ vb minname = $ nb; fi echo $ minval echo $ minname ' – Grzegorz

답변

1

귀하의 질문에 당신의 값이 배열에 있다고 생각하지 않습니다 및 당신이 배열의 색인을 알고 싶어요 - 당신의 값을 개별 변수에 생각하고 변수의 이름을 알고 싶어요 가장 작은 값을 포함합니다. 그것이 실제로 당신이 요구하는 것 인 경우 :

func() 
{ 
    minvar=$1 
    eval minval=\$$1 
    for i in $* 
    do 
    eval var=\$$i 
    # echo $i=$var 
    if [[ $var -lt $minval ]] 
    then 
     minvar=$i 
     minval=$var 
     # echo min=$i 
    fi 
    done 
} 

var1=55 
var2=71 
var3=30 
var4=42 
func var1 var2 var3 var4 
echo $minvar=$minval 
+0

'내가 필요로하는 것처럼 보이지만 더 조사해야한다. beginner와 im은'\ $$ 1'이나'\ $$ i'에 익숙하지 않다. 그것은 실제로 무엇을합니다. 하지만 네, 그래서 내가 계속 전진 할 수있는 가장 작은 변수를 찾습니다. – Grzegorz