bash globの拡張部分のみを返す[重複]

bash globの拡張部分のみを返す[重複]

私のディレクトリに hesa1.c と hesa2.c ファイルが含まれているとしましょう。 Next bash スクリプト

#!/bin/bash
for j in hes*.c
do
echo $j
done

hesa1.c と hesa2.c を返します。

このbashスクリプトがa1とa2のみを返すようにするにはどうすればよいですか(つまり、ワイルドカード拡張の使用)。

ベストアンサー1

これは「ワイルドカード拡張のみを表示」のような完全に一般的な答えではありませんが、パラメータ拡張機能グローブの固定部分を取り外します。

j=${j#hes}
echo ${j%.c}

これにより、最初に固定された「hes」が削除され、j最後に固定された「.c」が削除されますj

おすすめ記事