如果语句中有BASH变量乘法的问题

时间:2015-09-21 16:10:07

标签: bash if-statement math

我遇到一个问题,让BASH更新我正在处理的脚本中的变量。以下是我的剧本摘录,我遇到了麻烦

using UnityEngine;
using System.Collections;

public class CoinPickup : MonoBehaviour {

    void OnTriggerEnter(Collider other)  // other is a reference to the other trigger collider we have touched
    {
        if (other.gameObject.CompareTag ("Player"))
        {
            gameObject.SetActive (false);
            Debug.Log ("Sound should trigger here.");

            coinSound = gameObject.GetComponent<AudioSource>();
            coinSound.Play();
        }
    }
}

我的问题是,无论我在尝试什么,RAMSIZE变量永远不会乘以1024.我试图这样做,无论你输入什么数字,它总会被改为mb而不是gb的大小,假设任何小于1024的是gb大小。在脚本早期,RAMSIZE默认为2048,在if语句中似乎永远不会更改。请帮帮忙?

1 个答案:

答案 0 :(得分:1)

我发现有三个问题:您在作业中=周围不应该有空格,您不应该对您指定的变量使用$(一些$variable获取变量值的方式,而不是设置的方式),并且你在某些方面使用RAMSIZE地点和NEWRAMSIZE在其他地方。关键路线是:

if [[ "$RAMSIZE" -lt 1024 ]]; then
    RAMSIZE=$((RAMSIZE*1024)) # Note: no spaces, no extra $, same variable
    echo $NEWRAMSIZE
fi

...

echo "$RAMSIZE" # Same variable

顺便说一句,您可以使用shellcheck.net来发现这样的基本问题。