bashスクリプト引数として与えられた終わりから場所を取得するには? [コピー]

bashスクリプト引数として与えられた終わりから場所を取得するには? [コピー]

シェルスクリプトがありますが、最後のパラメータを使用したいと思います。

#!/bin/bash
echo My last param is #somehow put it here

私が試したことは次のとおりです。

echo $$#
echo ${$#}
echo ${(($#))}

残念ながら、それは動作しませんでした。

特に私のオプションが機能しない理由を理解したいと思います。デュアルエクステンションのようなことをしたいです。

より広い意味で最後のN番目のパラメータにアクセスする方法を知りたいです。どうやってこれを達成できますか?

ベストアンサー1

bashスクリプトからパラメータを取得するには、スライスを使用できます。

#!/bin/bash

# Get 3rd element from the end
from_end1=3
# Get last element
from_end2=1

# Get slice of array [end - from_end1 : end ] of length 1
echo "${@: -$from_end1: 1}"
echo "${@: -$from_end2: 1}"

これを使用してN番目の要素を取得することもできます。

# Get 2nd element
from_beginning=2

echo "${@: $from_beginning: 1}"

長さを確認してください。プログラム名または空の文字列を返すことがあります。

おすすめ記事