即:我想tail -f
使用别名less +F
,但让 tail 与提供的任何其他参数以与以前相同的方式工作。
答案1
这稍微超出了 shell 别名提供的能力(假设是 bash)。您可以定义一个函数:
function tail() {
if [ "$1" == '-f' ]; then
shift
less +F "$@"
else
command tail "$@"
fi
}
当您键入 时tail
, this 现在将引用上面定义的函数,该函数检查其第一个参数(如果有)是否与 相等
-f
,如果匹配,则less +F
对其余原始参数运行(shift
删除第一个原始参数,
-f
) 。否则,它会使用所有原始参数调用命令tail
(调用内置函数command
是避免无限循环所必需的;如果没有它,tail
将引用正在定义的函数,从而导致无限循环)。