2012-03-20 3 views
16

エイリアスが既に設定されている場合は、どうすればbashrcをチェックインできますか?私は、関数名を持つbashrcにファイルを、ソース楽しいを言うと、私の現在の環境が楽しみもとして別名を持つエイリアスが既に設定されている場合、bashrcをチェックインするにはどうすればいいですか?

私はunalias funを試しましたが、それは私の環境がそのエイリアスを既に持っていないときに、楽しいものが見つからないというエラーを与えます。

私のbashrcでは、私の楽しみの機能で私はエイリアスが設定されているかどうかを確認したいと思っています。あなたはそれが設定された場合は、エイリアスを削除します

[ `alias | grep my_previous_alias | wc -l` != 0 ] && unalias my_previous_alias 

のような何かができるよう

答えて

22

あなただけのエイリアスが存在しないことを確認するには、ちょうどそれをUNALIASし、このようには/ dev/nullにそのエラーをリダイレクト:

unalias foo 2>/dev/null 

エイリアスがで設定されているかどうかをチェックすることができますこのような何か:

alias foo 2>/dev/null >/dev/null && echo "foo is set as an alias" 

manページに記載されているように:

For each name in the argument list for which no value is sup- 
plied, the name and value of the alias is printed. Alias 
returns true unless a name is given for which no alias has been 
defined. 
8

ちょうど、あなたが実際unaliasを使用することができます

alias | grep my_previous_alias 

ノートのようなコマンドaliasを使用します。

+0

関数を定義し、私は私のMac、Linuxのマシン間 'la'をテストするためにこれを使用していました。 Macの私の.bash_profileには、Gが色であるため、 'alias la = 'ls -GA'があり、' .bashrc'には関数checkLa(){if ["$(alias | grep la) "==" ls -GA "];次に "mac user!"とエコーします。 0を返します。 fi echo "linux user!";エイリアスla = 'ls -A --color = auto'}; checkLa() '私はエイリアスがエイリアスのすべてを返すことも知っていましたが、私はそれを考えませんでした! :D – dylnmc

2

あなたはを使用することができますを実行して、コマンドが存在するかどうか、またはエイリアスかどうかを確認します。

コマンドが見つからない場合、エラーステータスを返します。

例えば、私は次の別名を定義しています:別名の

$ type foo >/dev/null && echo Command found. || echo Command not found. 
Command found. 

または特別:

$ alias foo && echo Alias exists || echo Alias does not exist. 

か確認するには、次のシナリオをチェックし

$ alias foo="printf" 

をエイリアスでも、通常のコマンドでも:

$ grep alias <(type foo) && echo It is alias. || echo It is not. 

rcファイルにエイリアスが定義されているかどうかを確認するには、手動で確認する必要があります。 :

[ "$(grep '^alias foo=' ~/.bash* ~/.profile /etc/bash* /etc/profile)" ] && echo Exists. || echo Not there. 
1

エイリアスを確認するための良いbashの固有溶液は、例えば、BASH_ALIASESアレイを使用しています:

$ echo ${BASH_ALIASES[ls]} 
0

あなたのbashrcには、単純にファイルを作るために使用することができます以下

  1. は別名が存在することを確認してください。
  2. これをアンアラアスします。

alias fun='' 
unalias fun 
fun() 
{ 
    # Define the body of fun() 
} 
関連する問題