【问题标题】:Create alias/modify path from Python script从 Python 脚本创建别名/修改路径
【发布时间】:2014-01-21 23:33:27
【问题描述】:

我正在开发一个命令行应用程序,我希望在下载应用程序文件后运行 setup.py 脚本时,为该程序永久创建一个别名(即不仅仅是为这个终端会话) .我遇到的问题是,例如,如果用户使用的是 zsh,那么我需要将其添加到 .zshrc,但如果用户使用的是 bash 等,情况就不同了。有标准的方法吗?

谢谢!

【问题讨论】:

    标签: python bash terminal zsh


    【解决方案1】:

    蛮力(丑陋)方式:

    #!/bin/sh
    for user in joe sally bob
    do
        cd "/home/$user"
        [ -f .bashrc ] && echo "alias whatever" >>.bashrc
        [ -f .zshrc ] && echo "alias zversion" >>.zshrc
    done
    

    更优雅的方法是为别名使用单个系统文件,例如/etc/aliases.local,修改用户启动文件一次即可获取。另外,将source /etc/aliases.local 行添加到/etc/skel 中的相应文件中,以便新创建的用户将自动获取它。

    或者,更好的是,在许多发行版中,有一个公共文件,/etc/bash.bashrc/etc/bashrc 或类似文件,它是在启动时获取的。只需在那里进行修改。然后,不需要修改用户的个人启动文件。 (Zsh 可能也有类似的东西。)

    【讨论】:

    • cd ~"$user" 不起作用,因为波浪号扩展发生在参数扩展之前。波浪号将按字面意思传递给cd 命令,而不是扩展到给定用户的主目录。
    • @chepner 感谢您的关注。
    • @John1024 这是标准的处理方式吗?
    • @user43228 你要求的是非标准的。标准方法是创建一个 shell 脚本来执行别名将要执行的任何操作,并将脚本放在通常 PATH 的某个位置。
    猜你喜欢
    • 2014-09-24
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 2018-08-30
    • 2017-03-31
    • 1970-01-01
    相关资源
    最近更新 更多