2011-09-20 4 views

答えて

8

、あなたはPparameter expansion flagを使用したり、位置パラメータを含む配列として@を扱うことができ、次のいずれか

last=${(P)#} 
last=${@[$#]} 

のzshを含むすべてのBourneスタイルのシェルで動作する方法は

eval last=\$$# 
です

(正しい軌道に乗っていましたが、出力を得るためにechoを実行するだけで無意味です)

8
last=${@[-1]} 

このトリックを行う必要があります。より一般的には、

${@[n]} 

一方

${@[-n]} 

、* N *番目のパラメータが得られるが、最後のパラメータに目*を得N *であろう。

0

大腸パラメータ展開はPOSIXではありませんが、これは、少なくともzshの、bashで動作し、kshの:引数がない場合は

${@:$#} 

${@:$#}はzshのとkshのに$0として扱われますが、 bashで空のまま:

$ zsh -c 'echo ${@:$#}' 
zsh 
$ ksh -c 'echo ${@:$#}' 
ksh 
$ bash -c 'echo ${@:$#}' 

$ 
関連する問題