Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【シェルスクリプト】最後の引数を取り出したいとき

自分で作ったplotスクリプトを使っていて、さらなる改良点を見つけてしまった

シェルスクリプトの引数の最後のものを取り出す必要があったので、調べてみた

#!/bin/sh
echo ${@:$#:1}
でいけるらしい

参考 :
最後のコマンドライン引数を取得する


$# は引数の数
$@ はシェルスクリプト実行時、もしくは set コマンド実行時に指定された全パラメータが設定される変数。
$* は基本的には$@と同じだけど、"hoge"みたいな""で囲んだときの結果が変わるらしい(試してないけど)

これらを踏まえて

${@:$#:1}
${@:2:4}という書き方で、$2から$6までを表示できるらしい、$2から4つ先の引数を表すということ?
${@:$#:1}だと、$#(引数の数)から1つだけを表示する、つまり最後の引数だけを表示できるということ

なのかな・・・?
一応スクリプトを書いてみたら、きちんと思っている通りに動いたので良しとしておく



ランキング参加中です

↓クリックしていただけると嬉しいです〜