1. ホーム
  2. バッシュ

[解決済み】bashスクリプトでファイル名の拡張子を確認する方法は?

2022-04-11 22:42:19

質問

bashでナイトリービルドスクリプトを書いています。

1つの小さなつまづきを除いては、すべて順調です。


#!/bin/bash

for file in "$PATH_TO_SOMEWHERE"; do
      if [ -d $file ]
      then
              # do something directory-ish
      else
              if [ "$file" == "*.txt" ]       #  this is the snag
              then
                     # do something txt-ish
              fi
      fi
done;

私の問題は、ファイルの拡張子を判断し、それに応じて動作することです。 問題はifステートメントにあり、txtファイルをテストしています。

ファイルの拡張子が.txtであるかどうかを判断するにはどうすればよいですか?

どのように解決するのですか?

つまり、「$fileの最後の4文字は、$fileと等しいか? .txt ?" もしそうなら、次のようにすればよいでしょう。

if [ "${file: -4}" == ".txt" ]

の間にスペースがあることに注意してください。 file:-4 が必要です。':-' 修飾子は異なる意味を持つためです。