bash 技巧笔记

alias 可以对一个或一组命令起一个别名。和 bash 函数不同的是 alias 没有自己的独立进程。在有些情况下,和函数是不能相互替代的。
比如

alias shift2="shift 2"

之后就可以在脚本或函数中使用,踢掉两个参数。这样的东西用函数是不管用的。但是,alias 如果写在脚本里,运行时候会说找不到命令。因为对 bash 脚本,默认没有展开 alias 。需要先设置一下才行:

shopt -s expand_aliases

bash 中定义的变量可以用 export 导出,这样在子子孙孙的进程中都可以访问到。实际上,函数也是可以导出的。用 export -f 即可。这样在子进程的 bash 中也可以使用这些函数了。

出于调试目的或者要批量导出,可能需要列出所有函数。可以用

declare -F 

,不过这个结果里,每行前面都有 “declare -f” 。用

compgen -A function [prefix]

结果就很干净。另外,这个函数还可以指定函数的前缀。

如果要列出指定前缀的变量,则可以用

echo ${!prefix*}

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.