シェルスクリプトで使用される特殊文字を含む文字列変数を正しくエスケープしますか?

シェルスクリプトで使用される特殊文字を含む文字列変数を正しくエスケープしますか?

このように簡単な質問をするのは愚かなようですが、私は絶対にこれを支持します。私はすべての場所を検索し、変数を正しくエスケープまたは引用するためにいくつかの方法を試しましたが、何があってもシェルスクリプトで実行すると次のエラーが発生します.stat: cannot statx 'This is an odd | filename | (name).m4a' : No such file or directory ファイルが実行されているディレクトリにあります。

#!/bin/bash

FILENAME="This is an odd | filename | (name).m4a"
FILESIZE=$(stat "%s" "$FILENAME")

echo "Size of $FILENAME = $FILESIZE bytes."

コマンドラインから実行すると正常に動作します。

$ stat "%s" 'This is an odd | filename | (name).m4a'

関連情報