2013-08-09 4 views
1

나는 간단한 bash 스크립트를 작성하고있다. (나는 bash에 상당히 익숙하다.) 명령 출력을 변수에 지정하려고하는데 제대로 작동하지 않는 것 같습니다. 아래를 참조bash 스크립트가 명령을 해석하지 않는다.

#!/bin/bash 

HOST=`hostname` 
MEMORY=`prtconf -v |grep Memory |awk '{print $3}'` 
echo "os_instance_name "$HOST 
echo "physical_machine_ram "$MEMORY 

내가 제대로 hostname의 결과를 얻을하지만 내 MEMORY 변수가 명령의 출력으로 채워하지 않을 수 있어요.

+2

무엇이야 내에서 변수 확장을 넣어 'prtconf -v | grep Memo의 출력 ry | awk '(print $ 3)''? – fedorqui

+2

'prtconf -v | grep Memory | awk'(print $ 3) '명령이 자체적으로 입력되면 작동합니까? – Floris

+0

그것은 전 메가 바이트의 RAM입니다. 4096 – arrowill12

답변

0

이 시도 :

memory=`free -m | grep Mem | awk '{print $2}'` 

echo $memory 

이 메가 바이트 당신이 빈 열을 참조 할 수 있습니다 제공 한 코드 또한

, $1의 실제 메모리를 반환해야합니다. $2을 사용해보세요.

+1

필자가 생각하기에 ('prtconf' 명령에 기초한) 이것은 솔라리스 시스템에 있다는 것입니다. 솔라리스 시스템에는 최소한 기본값이 아닌'free'가 없습니다. SunFreeware 또는 다른 소스에서 제공하는지 확실하지 않습니다 ... – twalberg

0

일부 아이디어는 내 마음에 봄 :

  1. 디버그 모드에서 스크립트를 실행

    $ bash -x myscript.sh 
    
  2. 따옴표

    echo "os_instance_name $HOST" 
    echo "physical_machine_ram $MEMORY" 
    
관련 문제