在Linux中设置环境int变量,以便在python中的while循环中使用,但循环不会';停不下来
我正在用Python控制树莓皮2上的一个LED。我想让LED灯亮x秒。当我在Linux中设置环境变量时。例如,在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
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
的导出不需要引号。贝壳不能区分这一点。是的,我注意到。。这是我的错误。我把那部分从我的答案中删除了。