Gre*_*hal 14
if alias <your_alias_name> 2>/dev/null; then
do_something
else
do_another_thing;
fi
Run Code Online (Sandbox Code Playgroud)
scy*_*scy 13
我\xe2\x80\x99m会把5年前@jimmij\xe2\x80\x99s的评论变成一个答案:
\ntype -t正是为了这个目的而设计的。alias如果给定的命令是别名,它将输出。如果该命令不存在,它不会输出任何内容,这意味着您不需要重定向其 stderr 或其他内容。
例子:
\nif [ "$(type -t foo)" = \'alias\' ]; then\n echo \'foo is an alias\'\nelse\n echo \'foo is not an alias\'\nfi\nRun Code Online (Sandbox Code Playgroud)\n-t请注意, POSIX 中未定义该开关。bash 之外的 shell 可能无法实现它。