在循环中捕获返回值和bash函数的输出

时间:2018-10-14 15:35:52

标签: linux bash

有点困惑,我有一个函数,它通过运行两个期望脚本返回一个退出代码值,并且还返回输出(我在函数中从第一个脚本生成一个退出代码,从第二个脚本输出一个退出代码)

我试图弄清楚如何在循环中使用此功能。 我想循环该函数,直到退出代码为零,然后将输出值存储在变量中。 我有点不知所措,我想知道是否有人可以建议? 我的目标是:

 private void OnTriggerEnter2D(Collider2D col)
 {
     if (col.gameObject.tag == "Bullet")
     {
         StartCoroutine("Blinker");
     }
 }

 IEnumerator Blinker()
 {
     GameObject This = this.gameObject;

     Color tmp = This.GetComponent<SpriteRenderer>().color;
     Color tmp2 = This.GetComponent<SpriteRenderer>().color;

     tmp.a = 0f;
     tmp2.a = 1;
     This.GetComponent<SpriteRenderer>().color = tmp;
     yield return new WaitForSeconds(sec);
     This.GetComponent<SpriteRenderer>().color = tmp2;
 }

请问我该如何做得更好?

1 个答案:

答案 0 :(得分:1)

一种解决方法是使用临时文件:

moduleA.file2

或者如果您不需要临时文件:

#!/bin/bash

myfunc() {
   echo "output $RANDOM"
   return $((RANDOM % 5))
}

tmp=$(mktemp)
until myfunc > "$tmp" || (( count++ == 5)); do :; done
cat "$tmp"