Lesson 65 python中命令行提示符的实现
1. os的system原理
os.system方法是os模块最基础的方法,其它的方法一般在该方法基础上封装完成
system函数可以将字符串转化成命令在服务器上运行;其原理是每一条system函数执行时,其会创建一个子进程在系统上执行命令行,子进程的执行结果无法影响主进程;
上述原理会导致当需要执行多条命令行的时候可能得不到预期的结果:
例如:
import os
os.system('cd /usr/local')
os.mkdir('aaa.txt)
上述程序运行后会发现txt文件并没有创建在/usr/local文件夹下,而是在当前的目录下
2. 命令行提示符的实现
import os
# print(os.system('ls'))
# print(os.system('pwd'))
导入os模块后, 可以使用os.system()来执行系统命令
ls #查看当前目录下的文件
pwd #查看当前环境所在目录
for i in range(1000):
cmd = input('[test@foundation0 bin]$')
if cmd:
if cmd == 'exit':
print('logout')
break
else:
print('run %s' %(cmd))
# 运行shell命令
os.system(cmd)
else:
continue
- 命令行提示符使用cmd来存放, 为了使测试效果比较明显, 在[@foundation14 bin]$前加yy, 以区别这是自己的python脚本, 而不是系统自带的命令行提示符
- 当用户输入exit时,打印logout并退出程序
在shell中找到编写命令行提示符的python程序
运行这个程序, 可以看到,当输入命令时, 显示运行命令, 当输入exit, 可以看到, 显示logout退出yy用户, 回到系统之前的kiosk用户登陆的状态
说明我们已经实现了用python编写命令行提示符的程序