文字列変数の部分文字列を取得する方法があることは知っています:
MY_STR=abacaba
echo ${MY_STR:2:6}
リテラル定数として指定された文字列の部分文字列を取得する方法はありますか? 何かのようなもの:
echo ${"abacaba":2:6}
expr
文字列リテラルを扱うことができます。
expr substr STR POS LEN
あなたの例では、それはexpr substr 'abacaba' 3 6
ありませんが、関数を使用するなどの代替手段があります。
function getsub {
sub="${1:$2:$3}"
}
getsub abacaba 2 6
echo "$sub"
function printsub {
echo "${1:$2:$3}"
}
printsub abacaba 2 6