$1是第一个参数。 $@是全部。
如何找到传递给shell的最后一个参数 脚本?
$1是第一个参数。 $@是全部。
如何找到传递给shell的最后一个参数 脚本?
当前回答
使用参数展开(删除匹配的开头):
args="$@"
last=${args##* }
也很容易把所有的都放在最后:
prelast=${args% *}
其他回答
#! /bin/sh
next=$1
while [ -n "${next}" ] ; do
last=$next
shift
next=$1
done
echo $last
这是bash独有的:
echo "${@: -1}"
使用参数展开(删除匹配的开头):
args="$@"
last=${args##* }
也很容易把所有的都放在最后:
prelast=${args% *}
这是在将最后一个参数与所有前一个参数分开时发现的。 虽然有些答案确实得到了最后一个参数,但如果你还需要所有其他参数,它们就没有多大帮助了。这样做效果更好:
heads=${@:1:$#-1}
tail=${@:$#}
注意,这是bash专用的。
如果你使用的是Bash >= 3.0
echo ${BASH_ARGV[0]}