質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

2回答

3492閲覧

cronの中で外部コマンドを実行して引数に入れる方法

Kimsehwa

総合スコア312

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2017/02/14 11:52

crotabの中で外部コマンドを実行してその戻り値を取得したいですが、取得方法がよくわかりません。
試したのは以下の五つのパータンです。

crontab

TEST1 = eval "echo test" TEST2 = `echo test` export TEST3 = `echo test` export TEST4 = "`echo test`" export TEST5=`echo test`;echo $TEST5 */1 * * * * echo $TEST1 */1 * * * * echo $TEST2 */1 * * * * echo $TEST3 */1 * * * * echo $TEST4 */1 * * * * echo $TEST5

の結果

eval "echo test" `echo test` 空 空 test

TEST5は正常に外部コマンドの戻り値が取れましたが、共通の引数として使いたいです
※TEST5が通ってることからみてcron上で環境変数をexportしても効かないようです。

何かヒントになることありましたら、教えていただけますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2017/02/14 13:26

最初のコードをcrontabのなかに書いたと言うことですか?構文が全く違います。
otn

2017/02/14 13:27

あるいは、crontabから起動したプログラムのソースということですか?シェルっぽいけどこれもsh/bashとは構文が違います。
guest

回答2

0

crontabの中で環境変数を設定できるようではありますが、crontabにはシェルのような能力はなく単に環境変数へ固定的な文字列を設定することのみできるような気がするのですが・・・
自分はUbuntuですが、

TEST=echo boo
*/1 * * * * echo $TEST

このように定義するとメールボックスには

echo boo
と、そのまんま(^^; 入ってました。

ちなみに質問者さんの書かれた内容を真似て

export TEST=echo boo;echo $TEST
*/1 * * * * echo $TEST

という内容にしようとすると以下のように文句を言われます。(crontab -eで編集しました)
errors in crontab file, can't install.
Do you want to retry the same edit? (y/n)

つまり、crontab上でカスタマイズするのではなく起動されたコマンドの中でカスタマイズすべきであるというのが自分の結論です。間違ってたらスミマセン

投稿2017/02/14 15:38

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

/bin/sh 前提ならイコールの前後に空白入れちゃだめです。

sh

1#!/bin/sh 2TEST1=`ls /tmp` 3echo $TEST1

投稿2017/02/14 12:50

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問