スクリプトにコマンドの代わりにエイリアスを使用させることはできますか?

スクリプトにコマンドの代わりにエイリアスを使用させることはできますか?

コマンドにエイリアスがあります(Python開発環境を設定しています)。

alias python=~/virtualenv/bin/python

これにより、~/virtualenv/bin/python単に入力して実行できますpython。これでプロジェクトにシェルスクリプトがあります。たとえば、次のようになります。

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

スクリプトを変更せずに、スクリプトで見つけたエイリアスのpython代わりに私のエイリアスを使用することはできますか?python$PATH

答え1

はい。

エイリアスを入れれば~/.aliasesできます

export BASH_ENV="~/.aliases"
somescript

これは予測できない#!/bin/bashため、スクリプトがで始まると仮定します。#!/bin/sh

私の提案は次のとおりです。

  1. ~/.bashenv を作成
  2. スクリプトで使用するすべての設定を~/.bashrcから~/.bashenvに移動します。
  3. ~/.bashrc の上部に以下を追加します。
    [ -f ~/.bashenv ] && source ~/.bashenv
  4. BASH_ENV=~/.bashenv/etc/environment に入れてください
  5. #!/bin/bashスクリプトがまだ起動していない場合は、次から始めます。

またはzshを使用している場合は、エイリアスを〜/ .zshenvに移動してください。 zshは自動的にこのファイルを探します。


~/virtualenv/binしかし、おそらくそれを前にしてPATHPythonスクリプトを#!/usr/bin/env python最初の行に変更する方が簡単かもしれません。

答え2

エイリアスファイル~/.bash_alias”、これをスクリプトに入れます。

#!/bin/bash
shopt -s expand_aliases
source ~/.bash_aliases
python run-project.py

渡す)

答え3

または、いつでもsourceスクリプトでエイリアスを強制することができます。たとえば、rm次にエイリアスがあるとします~/.bashrc

alias rm='moveToTrash'

whilemoveToTrashはあなたのものです/usr/bin。これで、次のスクリプトがありますtest.bash

#!/bin/bash

which rm

直接実行すると、test.bash出力を表示して出力を取得できます/bin/rmsource test.bash

alias rm='moveToTrash'
    /usr/bin/moveToTrash

関連情報