【发布时间】:2016-10-17 00:10:04
【问题描述】:
我想在我的一个 python 脚本中创建命令行别名。我已经尝试过 os.system()、subprocess.call()(有和没有 shell=True)和 subprocess.Popen(),但我对这些方法都没有运气。为了让您了解我想做什么:
在命令行我可以创建这个别名: 别名 hello="echo 'hello world'"
我希望能够运行一个为我创建此别名的 python 脚本。有什么建议吗?
我也有兴趣在 python 脚本中使用这个别名,比如使用 subprocess.call(alias),但这对我来说不如创建别名重要。
【问题讨论】:
-
别名是 shell 的一个特性,而不是 python 的特性,或者大多数其他编程语言都有这个特性。它们可能是支持的噩梦,在我看来,除了键盘生产力辅助之外,您应该避免使用任何其他东西。再次使用函数,这些是 shell 函数而不是 python 函数。
-
你可以用 Python 做到这一点,但是别名只会在用于创建它的系统命令的生命周期内存在(即不会很长。)
-
如果你使用 bash/zsh/.. 作为你的 shell,你可以在你的
~/.bashrc/~/.zshrc中包含类似alias hello="echo 'hello world'"的东西。 Windows Powershell 可能也有类似的可能性。 -
我可以在 python 脚本中将别名添加到 ~/.bashrc 吗?这个想法是让 python 脚本设置别名供用户将来使用。
-
只是一个普通的文本文件,只要你细心,编辑是没有问题的。但是在用户启动新的 shell 之前,更改不会生效;仅仅从函数返回是不够的
标签: python bash subprocess alias