LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 899|回复: 2

shell脚本变量与应用程序同步的问题

[复制链接]
发表于 2006-12-5 22:47:18 | 显示全部楼层 |阅读模式
写了一个SHELL脚本,使用一个变量来让一个程序重复运行

开始让RUN_APP = true

while $RUN_APP
do
    程序名
done

然后在这个程序里使用setenv来使RUN_APP = false,想让程序停止。可是程序无法停止,改写成
while $RUN_APP
do
    echo $RUN_APP
    程序名
done
发现$RUN_APP还是等于true.

个人认为是没有同步。如何解决这个问题?请提示下

为什么这个时候$RUN_APP无法等于false?
发表于 2006-12-7 14:25:03 | 显示全部楼层
程序在子shell中运行不能改变父shell的变量。可以通过程序运行的某些状况来重置变量,例如program || RUN_APP = false. 表示如果程序出错则变量附值为false.
回复 支持 反对

使用道具 举报

发表于 2006-12-7 16:17:21 | 显示全部楼层
根据楼主的想法,我自己写了一个  楼主可以参考一下

#!/bin/bash

declare -i RUN_APP=1
declare  -i setenv=3

while [ $RUN_APP -ne 0 ]
do
  echo ====
  let setenv="${setenv} - 1"
  let RUN_APP=${setenv}
done
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表