在单个文件中提供多个终端命令并立即运行所有命令?

时间:2016-08-29 13:30:17

标签: python linux raspberry-pi bluetooth-lowenergy ibeacon

我是Raspberry pi的初学者,我有一个基本的疑问。

我基本上试图将我的覆盆子pi变成一个灯塔并将数据从它宣传到Android应用程序。

我想知道我是否可以在一个文件中提供多个终端命令,只需编译并运行该文件即可运行所有命令?

我跟着this tutorial

我的基本疑问是,每次我必须检查设备是否可用(蓝牙)并做广告时,它会为每个设备执行命令。我可以将多个raspberry pi命令集成到一个文件中并通过编译和运行该文件(作为脚本)运行所有这些命令吗?

很少有命令如下:

sudo hcitool lescan, 
sudo hcitool hci0,
sudo hcitool -i hci0 0x008,

和这些命令很少..

2 个答案:

答案 0 :(得分:1)

假设您的文件example.txt包含以下命令:

sudo hcitool lescan
sudo hcitool hci0
sudo hcitool -i hci0 0x008

然后,您可以通过运行sh example.txtbash example.txt来执行这些命令。 见ubuntu run text file as command

答案 1 :(得分:1)

如果您真的想使用python,可以使用子进程模块。

import subprocess
with open ('/home/pi/bluetoothcommands.txt') as btcommands:
    for line in btcommands:
        subprocess.run (line)

如果您想循环播放:

import subprocess
with open ('/home/pi/bluetoothcommands.txt') as btcommands:
    while True:
        for line in btcommands:
            subprocess.run (line)

在/home/pi/bluetoothcommands.txt文件中:

sudo hcitool lescan
sudo hcitool hci0
sudo hcitool -i hci0 0x008