如果我有命令:
$ /file.py item 2
执行sys.argv
会给我:
['/file.py', 'item 2']
是否有方法可以在不执行' '.join(sys.argv)
的情况下输入确切的文字?
答案 0 :(得分:4)
给定的确切最终用户输入永远不会从shell传递到正在运行的程序。组装参数向量由shell执行,该向量 - 而不是构建它的字符串 - 作为参数传递给execve
系统调用。
实际上,根本不存在shell命令 - 考虑使用subprocess.call(['/file.py', 'item 2'], shell=False)
调用脚本的情况,或者使用其他语言调用脚本的情况。
如果不修改shell以执行某些特殊操作(例如将最后一个命令导出到环境变量 - 可以使用DEBUG
陷阱轻松实现的东西),则无法检索它。< / p>