我尝试运行echo ${@:$#}
,它与我当前的 shell 相呼应。
我发现echo ${#}
回声是0。
我没有找到任何有关结果的资源。
我试图理解那部分,以便我可以理解我想要使用的 docker 脚本。脚本是:
alias enhance='function ne() { docker run --rm -v "$(pwd)/`dirname ${@:$#}`":/ne/input -it alexjc/neural-enhance ${@:1:$#-1} "input/`basename ${@:$#}`"; }; ne'
答案1
$#
是函数或脚本的参数数量,位置参数的数量。$@
是函数或脚本的参数列表、位置参数列表 、 等$1
。$2
${@:offset:n}
是n
从parameter 开始的参数,还是从ifoffset
到末尾的所有参数都缺失。offset
n
因此${@:$#}
是给当前函数的最后一个参数,而${@:1:$#-1}
是剩余的参数。最后一个参数也可以写成${@: -1}
(在 Bash 版本 4.3 或更高版本中)。