获取shell输入为字符串,而不是列表

时间:2014-10-18 19:37:27

标签: python

如果我有命令:

$ /file.py item 2

执行sys.argv会给我:

['/file.py', 'item 2']

是否有方法可以在不执行' '.join(sys.argv)的情况下输入确切的文字?

1 个答案:

答案 0 :(得分:4)

给定的确切最终用户输入永远不会从shell传递到正在运行的程序。组装参数向量由shell执行,该向量 - 而不是构建它的字符串 - 作为参数传递给execve系统调用。

实际上,根本不存在shell命令 - 考虑使用subprocess.call(['/file.py', 'item 2'], shell=False)调用脚本的情况,或者使用其他语言调用脚本的情况。

如果不修改shell以执行某些特殊操作(例如将最后一个命令导出到环境变量 - 可以使用DEBUG陷阱轻松实现的东西),则无法检索它。< / p>