在Linux中设置环境int变量,以便在python中的while循环中使用,但循环不会';停不下来

在Linux中设置环境int变量,以便在python中的while循环中使用,但循环不会';停不下来,python,linux,bash,shell,Python,Linux,Bash,Shell,我正在用Python控制树莓皮2上的一个LED。我想让LED灯亮x秒。当我在Linux中设置环境变量时。例如,export t=5。LED亮起但不熄灭 如果我只是在python脚本中设置变量,那么一切都可以正常工作 我在Linux中设置了一个环境变量,如下所示: export t=5 sudo python test.py 在Python中获得它,如下所示: #!/usr/bin/env python import RPi.GPIO as GPIO import time

我正在用Python控制树莓皮2上的一个LED。我想让LED灯亮x秒。当我在Linux中设置环境变量时。例如,
export t=5
。LED亮起但不熄灭

如果我只是在python脚本中设置变量,那么一切都可以正常工作

我在Linux中设置了一个环境变量,如下所示:

export t=5
sudo python test.py
在Python中获得它,如下所示:

 #!/usr/bin/env python

    import RPi.GPIO as GPIO
    import time
    import os


    GPIO.setmode(GPIO.BOARD)

    GPIO.setup(11,GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

    GPIO.setup(12,GPIO.OUT)

    GPIO.output(12,0)

    s = 0

    t = os.environ.get('t')

    while s <= t:
            if (GPIO.input(11) == 1):

                            GPIO.output(12, 1)

                            time.sleep(0.1)

                            s += 0.1
            else:
                    GPIO.output(12, 0)

    GPIO.output(12, 0)
#/usr/bin/env python
将RPi.GPIO导入为GPIO
导入时间
导入操作系统
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.IN,pull\u up\u down=GPIO.PUD\u down)
GPIO.setup(12,GPIO.OUT)
GPIO.输出(12,0)
s=0
t=os.environ.get('t')

而s环境变量的值,以及因此而存储的
os.environ
,则存储为字符串。因此,您需要将
t
转换为一个数字,以便与
s
进行比较,以便执行您想要的操作:

t = int(os.environ.get('t'))

向循环中添加一些调试打印语句。每个循环的
t
s
值是多少?
s
是否超过了
t
作为某个点,但循环仍在继续?已经超过了。我看到了t变量计数的无穷大,这就成功了!谢谢我不知道所有环境变量都存储为字符串。@Julez如果你是说在shell中,
t
的导出不需要引号。贝壳不能区分这一点。是的,我注意到。。这是我的错误。我把那部分从我的答案中删除了。