複数変数のパラメータ拡張

複数変数のパラメータ拡張

個々の変数のパラメータ拡張は期待どおりに機能します。しかし、複数の変数を含むパラメータをどのように拡張しますか?例:

#!/bin/sh

foo=/lorem/ipsum; bar=dolor/sit

tmp="$foo/$bar"
printf '%s\n' "${tmp%/*}"

一時変数なしでこのパラメータ拡張をどのように実行できますか?

ベストアンサー1

拡張には1つの変数しか許可されていないため、一時変数が必要です。ただし、これが正しいユースケースである場合、dirnameは%/ *とほぼ同じ操作を実行するため、適切です。

$ foo=/lorem/ipsum; bar=dolor/sit
$ dirname $foo/$bar
/lorem/ipsum/dolor

おすすめ記事