您可以包装
docker一个检查特定子命令并传递其他所有内容的函数。(以下内容实际上不仅适用于zsh,而且适用于任何POSIX兼容的shell(zsh并不完全属于该类别)。
docker() { case $1 in ps) shift command docker ps --format 'table {{.Image}}t{{.Names}}t{{.Ports}}t{{.Status}}' "$@" ;; *) command docker "$@";; esac}如果您想要一个更通用的包装器函数(不需要了解特定的所需
ps逻辑),可以按照以下步骤进行操作(请注意,由于使用了该版本,该版本与基线POSIX sh
不 兼容
local;但是,是甚至由
ash及其衍生物实现的扩展):
docker() { local cmd=$1; shift if command -v "docker_$cmd" >/dev/null 2>/dev/null; then "docker_$cmd" "$@" else command docker "$cmd" "$@" fi}…之后,可以定义任何子命令自己的功能,而无需修改包装器以了解它们(您也可以在PATH中创建名为的脚本
docker_ps,或以您选择的任何其他方式提供命令):
docker_ps() { command docker ps --format 'table {{.Image}}t{{.Names}}t{{.Ports}}t{{.Status}}' "$@"}


