input1="/$HOME/Desktop/foo/bar/"
input2="/$HOME/Desktop/foo/bar"
target1a=$(basename "$input1")
target1b="${input1##*/}"
target2a=$(basename "$input2")
target2b="${input2##*/}"
echo $target1a
echo $target1b
echo $target2a
echo $target2b
戻り なっベース名は、/
bar
bar
bar
もbar
を返すようにtarget1b
を取得する方法がある
$1
がしばしばinput1
またはinput2
バリエーションのようにCLIに入力することができ、私はどちらかのバリエーションが入力されたときbar
を返すためにbasename
のではなく、グロブを使用できるようにしたいと思い、bashでタブ補完するために行います。
'$役立ちます場合には、1つの純粋なグロブだ{入力を## * /}'使用していません正規表現(これはグロブスです) –