ホーム > GNU/Linux > crontabで%(パーセント)を使うとエラーが起こる件

crontabで%(パーセント)を使うとエラーが起こる件

crontabの中にdateコマンドを書こうとしたらエラーになった話。

やろうとしたこと:
echo '定期post" `date +%R`

起こったこと:
/bin/sh: -c: 行 0: 一致する `” を探索中に予期しないファイル終了 (EOF) です
/bin/sh: -c: 行 1: 構文エラー: 予期しないファイル終了 (EOF) です

まあ、ちゃんとman 5 crontabを読めよって話です。

以下はFedoraのcrontab(5)からの引用です。

その行のコマンド部 (改行文字または % 文字まで) が /bin/sh
(またはその crontab ファイルの SHELL 環境変数で指定されたシェル) によって実行される。 コマンド中にパーセント記号 (%) が
バックスラッシュ (\) によってエスケープされずに置かれていると、 改行文字に置き換えられ、最初に現れた % 以降の全てのデータは
標準入力としてコマンドに送られる。

ということで、
echo '定期post" `date +%R`
の解釈は
echo '定期post" `date +
R`

となるわけです。

せいかい:
echo '定期post" `date +\%R`

広告
カテゴリー:GNU/Linux
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。