8 我有一个~/bin目录(位于上PATH),其中存储了很多小的1或2行脚本。其中一些只是cd进入目录并在文件之类的文件上运行命令vim。但是我的文件中还有很多别名,.bash_aliases它们起着相同的作用。 在编写一些bash脚本和编写别名之间,您如何决定?到底走哪条路都重要? shell-script scripting alias — 担 source 1 In Bash的 — 杰夫·谢勒
5 如果我足够频繁地使用它们,以保证将它们加载到每个shell中的开销。我将它们写成函数。 如果它们是特定于项目的,那么我可能会将它们写为一组别名和函数,当我在该项目上工作时,这些别名和函数可以在shell中提供。 只有当它们以独立方式工作时,任何内容都不会在〜/ bin中变成脚本。有一些衬板基本上是别名,但是这些衬板是从shell以外的地方运行的(例如,在其他程序中运行提示)。在大多数情况下,它们必须是相当坚固的脚本。 — 卡列布 source
1 通常,shell脚本函数比别名更灵活,您应该首选它们。例如,在别名中,您无法测试给定参数的数量或其类型是否是期望的。我同意Caleb的观点,例如,别名很适合简单的衬纸alias cp='cp -i' — 萨基斯克 source
1 对于任何更复杂的单个命令的字符串替换,脚本可能更合适。同样,其他脚本可能会使用的或其他人可能会使用的任何东西最好都作为脚本使用。虽然从别人的bin目录中运行程序不是一个好主意,但它比采购别人的单个别名文件更好。 别名最适合个性化您的交互式环境。例如,e='emacs -nw'和类似的东西。 — 戈拉杜斯 source
0 我使用最简单的方法。 主要是,如果命令没有参数,我通常使用别名。 如果命令包含参数,则使用函数。 例如制作并刻录到目录: md () { [ $# = 1 ] && mkdir -p "$@" && cd "$@" || echo "Error - no directory passed!"; } 如果命令使用已安装的具有参数的函数,我也会使用一个函数 例如,将-v添加到git中: git () { [ $1 = commit ] && command git commit -v "${@:2}" || command git "$@"; } — 迈克尔·杜兰特 source