エイリアスがすでに設定されている場合、bashrcをチェックインするにはどうすればよいですか。
関数名を持つbashrcファイルをソースすると、たとえばfunであり、現在の環境にはfunというエイリアスもあります。
Unalias funを試しましたが、環境にそのエイリアスがまだない場合、funが見つからないというエラーが発生します。
したがって、私のbashrcでは、fun関数で、エイリアスが設定されているかどうかを確認してから、エイリアスを解除します。
エイリアスが存在しないことを確認したいだけの場合は、エイリアスを解除して、次のようにエラーを/ dev/nullにリダイレクトします。
unalias foo 2>/dev/null
エイリアスが次のように設定されているかどうかを確認できます。
alias foo 2>/dev/null >/dev/null && echo "foo is set as an alias"
マンページに記載されているように:
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.
次のようなコマンドalias
を使用するだけです
alias | grep my_previous_alias
can実際にはunalias
を使用するので、次のようなことができることに注意してください。
[ `alias | grep my_previous_alias | wc -l` != 0 ] && unalias my_previous_alias
エイリアスが設定されている場合は削除されます。
type
を使用して、コマンドが存在するかどうか、またはエイリアスであるかどうかを確認できます。
コマンドが見つからない場合は、エラーステータスを返します。
たとえば、次のエイリアスを定義しています。
$ alias foo="printf"
次に、次のシナリオを確認します。
$ type foo >/dev/null && echo Command found. || echo Command not found.
Command found.
または特にエイリアスの場合:
$ alias foo && echo Alias exists || echo Alias does not exist.
または、エイリアスか通常のコマンドかを確認します。
$ 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.
から ここ :
if alias <your_alias_name> 2>/dev/null; then
do_something
else
do_another_thing;
fi
エイリアスをチェックするための優れたbash固有のソリューションは、BASH_ALIASES配列を使用することです。例:
$ echo ${BASH_ALIASES[ls]}
以下を使用して、bashrcファイルを単純化できます。
alias fun=''
unalias fun
fun ()
{
# Define the body of fun()
}