""スクリプトの検索中に予期しないファイルの終わりが発生しました。

""スクリプトの検索中に予期しないファイルの終わりが発生しました。

Bashスクリプトを実行しようとしていますが、予期しないEOFと一緒に「一致項目を探す」エラーが発生します。私はどこで台無しにされたのか分からない。

このスクリプトは、.mdファイルをロガーにエントリとして挿入するように設計されています。ロガーは次のCLIコードを使用して各.mdファイルを挿入します。 'dayone2 -d="YYYY-MM-DD TT:TT" new < "filename"。したがって、スクリプトはファイル名自体から日付を抽出し、上記のようにプログラムを実行します。

#!/bin/bash
#
# October 11, 2015 - John Raymonds
#
for file in *.md
do
# do something on "$file"
year="$(echo "$file" | cut -c 13,14,15,16)"
day="$(echo "$file" | cut -c 18,19)"
month="$(echo "$file" | cut -c 21,22)"
theDate=\"$year"-"$month"-"$day" 12:00PM"\"
#The date should end up in this format "2017-01-24 12:00PM"

/usr/local/bin/dayone2 -d="$theDate" new < "$file"

rm "$file"
done

コードには何の問題がありますか?

答え1

上記の引用theDateは間違っていました。それが必要です:

theDate="${year}-${month}-${day} 12:00PM"

文字列変数に割り当てるときは、二重引用符のペアを使用し、構文を使用して${}変数名を明確にすることをお勧めします。

関連情報