1

我正在编写一个简单的 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变量没有被命令的输出填充。

4

2 回答 2

0

一些想法浮现在我的脑海:

  1. 在调试模式下执行脚本

    $ bash -x myscript.sh
    
  2. 将变量扩展放在双引号内

    echo "os_instance_name $HOST"
    echo "physical_machine_ram $MEMORY"
    
于 2013-08-09T14:38:10.647 回答
0

尝试这个:

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

echo $memory

应该以兆字节返回物理内存

此外,$1在您提供的代码中可能指的是空白列。尝试使用$2.

于 2013-08-09T14:33:41.833 回答