変数に Windows のディレクトリなどが格納されている場合、 ディレクトリを表す \ をうまく表示できないことがあります。 例えば、dir='c:\recieve\data.log' という変数を表示する場合、 echo "${dir}" では、 c:^Mecieve\data.log printf "${dir}" でも、 c:^Mecieve\data.log と表示されてしまいます。 これは、\r を キャリッジリターン(^M)と認識してしまうのが原因です。 では、どうすれば良いのでしょうか。 答えは、(他にも方法はあるかもしれませんが) printf "%s\n" "${dir}" とすることで、 c:\recieve\data.log と正しく表示することができます。