我可以让脚本使用别名而不是命令吗?

Modified on: Sat, 30 Jun 2018 12:31:30 +0800

我有一个命令的别名(我正在设置一个Python开发环境)

alias python=~/virtualenv/bin/python

这样我只需输入~/virtualenv/bin/python就可以运行python。现在在我的项目中有一个shell脚本,例如:

#!/bin/sh python run-project.py

我是否可以使脚本使用别名python而不是python中找到的$PATH,而无需更改脚本?

作者:phunehehe

最佳答案

如果你把别名放在~/.aliases中,那你可以做

export BASH_ENV="~/.aliases"
somescript

这假设您的脚本以#!/bin/bash开头,因为#!/bin/sh的可预测性稍差。

以下是我的建议:

  1. 创建〜/ .bashenv
  2. 将您希望在脚本中使用的所有设置从〜/ .bashrc移动到〜/ .bashenv
  3. 将此添加到〜/ .bashrc的顶部:
    [ -f ~/.bashenv ] && source ~/.bashenv
  4. 在/ etc / environment
  5. 中输入BASH_ENV=~/.bashenv
  6. 让您的脚本以#!/bin/bash开头,如果它们还没有
  7. 醇>

    或者,如果您使用的是zsh,只需将别名移动到〜/ .zshenv即可。 zsh会自动查看该文件。


    但也许将~/virtualenv/bin放在PATH的前面附近会更容易,然后将Python脚本更改为#!/usr/bin/env python作为第一行。

作者:,Mikel

相关问答

添加新评论