2017-10-19 1 views
0

引数を指定して呼び出すことで、自分のエイリアスを作成したいと考えています。ここで引数を指定してスクリプトを呼び出すことによって、スクリプトのエイリアスを作成します。./myscriptエイリアス

$ ./devbox alias 
$ devbox <other command of my script> 

は私のbashスクリプトのコードです:

#!/bin/bash 

shopt -s expand_aliases 

aliasDevbox() 
{ 
    alias devbox="./devbox" 
} 

parseCli() 
{ 
    command=$1 

    case "$command" in 
    "alias") aliasDevbox 
    ;; 
    esac 
} 

parseCli "[email protected]" 

それは実際に働いていない:command not found

(私がもし私のコードalias devbox="./devbox"が私のスクリプトの先頭にあったことを知って、私はこのように呼び出すことができますsource ./devbox

ありがとう!

+0

誰かが呼び出す方法を設定するのはスクリプトの仕事ではありません。これは、配備の問題でも、特定のユーザーの責任でもあります。 – chepner

答えて

3

./devboxはシェルの子プロセスであり、子プロセスは親シェルでエイリアスを設定できないため、動作しません。 (同様に、環境変数も変更できません)

私は回避策を提案できますが、一歩前進して、これは本当に必要ですか?通常、ユーザーは.bashrcのようなログインスクリプトでエイリアスを設定し、エイリアスが起動する新しいシェルでエイリアスを自動的に使用できるようにします。私の提案は、ユーザーがツールのエイリアスを作成して使いやすくすることを示唆するドキュメントを書くことです。

関連する問題