If,then...fi コマンドを使用して、ユーザーが入力したファイル形式が正しいことを確認する方法は? [コピー]

If,then...fi コマンドを使用して、ユーザーが入力したファイル形式が正しいことを確認する方法は? [コピー]

続行する前に、ユーザーに正しいスクリプトファイル形式を入力したかどうかを知らせる非常に基本的なbashスクリプトを作成しようとしています。たとえば、

echo "Input .txt file here:"
read file
if $file = *.txt
    then 
    echo "File is in correct format."
    else
    echo "File is not in correct format. Please recheck your file."
    fi

これには何を使用できますか?

以下のコマンドは機能せず、実際に目的の操作を実行するのではなく、「その他」のみを報告します。

$file = *.txt

ベストアンサー1

もちろん、ファイル拡張子だけではファイル形式ではありません。これは誰でも簡単な操作で変更できるテキストです。

mv image.png word.txt

つまり、この場合、単に次のbasenameコマンドを使用できます。

base=`basename "$file" .txt`
if test "$base" != "$file"
then
    echo "Success!"
else
    echo "Wrong extension..."
fi

おすすめ記事