crontab -l | { cat; echo "0 0 * * * /path/to/cron/job"; } | crontab -
新しいクローンタスクを追加するために、Webからこの行を取得しました。それはうまくいきます。心の中に疑いがあり、
1)ここで中かっこが必要な理由は何ですか(または単一引用符を使用することもできます)。
{ cat; echo "0 0 * * * /path/to/cron/job"; }
cat;
2)ここにコマンドが必要なのはなぜですか?
3)crontab -
.私が理解したものが正しい場合、-
パイプラインの以前のコマンド出力に置き換えられますか?
答え1
1) 校正装置が必要な理由
の出力との出力をcat
パイプで接続しなければならないからです。中括弧がないと、2つのコマンドの出力を単一のパイプに組み合わせることはできません。echo
crontab -
(またはここで一重引用符を使用することもできます)
いいえ。 ... | 'cat; echo "0 0 * * * /path/to/cron/job"' | ...
「cat; echo "0 0 * * * /path/to/cron/job"
名前付き実行ファイルへのパイプ」を意味します。これは言葉ではありません。
cat;
2)ここにコマンドが必要なのはなぜですか?
知りません。同じコンテンツをより効率的に作成できます。
{ crontab -l; echo '0 0 * * * /path/to/cron/job'; } | crontab -
3)
crontab -
.私が理解したものが正しい場合、-
パイプラインの以前のコマンド出力に置き換えられますか?
はい、しかしこれはcrontab
特にサポートされているからです。-
表現に使用stdin
および/またはsdtout
多くのコマンドが理解するルールですが、これは単なるルールです。>file
またはなどのシェルには適用されません| command
。