お世話になります。
LinuxのCronであるBASHスクリプトに引数を渡して定期実行したいと考えています。
bash
1*/1 * * * * /xxx/test.sh `引数1 引数2 引数3` > test.log
このように記載したのですが、test.shでは引数が1つとして認識されてしまいます。
直接実行した場合は問題が無いのですが、回避策などはありますでしょうか。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
ベストアンサー
引数1 引数2 引数3をまとめてバッククォートで囲っていますが、書き間違いですか?
バッククォートで囲うと、
"引数1" という名前のコマンドを"引数2"と"引数3"を引数として実行して、そのコマンドの出力をtest.shの引数として使う
という意味になりますけど、多分意図通りではないですよね?
「test.shに、引数1,2,3を3つの引数として渡す」というのがしたいことであれば、
*/1 * * * * /xxx/test.sh 引数1 引数2 引数3 > test.log
として下さい。
何故バッククォートで囲いたいと思ったのでしょうか?そのあたりを掘り下げないとまた同じ間違いをします。
投稿2016/08/09 05:30
総合スコア85766
0
どうしてもだめなときは
clontab
bash
1*/1 * * * * /xxx/test_exec.sh
test_exec.sh
bash
1 /xxx/test.sh 引数1 引数2 引数3 > test.log
投稿2016/08/09 04:19
総合スコア610
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
一連の実行部分(/xxx/test.sh 引数1 引数2 引数3)を、シングルまたはダブルクオーテーションで囲ってみてはいかがでしょうか。
投稿2016/08/09 03:56
総合スコア45
0
CRONに記述する方法自体がまちがっていました。
正しくはバッククオートなどで囲まず普通に記載することでした。
shell
1*/1 * * * * /xxx/test.sh 引数1 引数2 引数3 > test.log
投稿2016/08/09 05:42
総合スコア119
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/09 05:59
2016/08/09 06:31
0
crontabの記述は特に問題なさそうに見えます。
実行環境(実行ユーザ)やtest.shの中身が気になります。
簡単なシェルで試すのはどうでしょうか。
bash
1#!/bin/sh 2cat <<__END__ 3指定された引数 4 $1 5 $2 6 $3 7__END__ 8 9exit 0
投稿2016/08/09 04:48
総合スコア206
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/09 04:56
2016/08/09 05:01
2016/08/09 05:02
2016/08/09 05:11
2016/08/09 05:15
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/09 05:39