ターミナルからだと正常に結果が得られるスクリプトを、このようにcronに登録しても全く反応しません。
-
-
-
-
- for i in $(seq 0 30 59); do (sleep ${i}; ~/test.sh) & done;
-
-
-
しかしこのようにするととりあえず正常に結果が得られます。
-
-
-
-
- for i in $(seq 0 30 59); do (sleep ${i}; bash ~/test.sh) & done;
-
-
-
bashは超初心者で調べてやったら、たまたまどうにか動いただけなのでよくわかりません。
test2.shというファイルに「touch ~/touch.txt」とだけ記入して、このようにcronを設定してみましたが、これもうまくいきました。。
-
-
-
-
- for i in $(seq 0 30 59); do (sleep ${i}; ~/test2.sh) & done;
-
-
-
test.shは40行ぐらいですが、上の行から順番に「touch ~/touch.txt」と記入していくと、最初の10行ぐらいまではtouch.txtが生成されますが、ある段落を超えるとそれ以降に記入した場合、touch.txtが生成されません。
ある段落とは次の行です。
for ((i=0; i<=10; i++)); do
array+=("$(head -n $i $(dirname $0)/test.csv | tail -1)")
done
この段落もコピペしてきただけなので、十分に理解できているわけではありません。
どのへんに問題があるのか、「bash ~/test.sh」としなくても動くようにするにはどうしたらよいか、その必要はあるかなどを教えてください。
よろしくお願いします。
別件になるかもしれませんが、cronからこのコマンドを実行した場合、反応しなかったのでネットで調べて次のように変更してみましたが、この変更は問題ないでしょうか?
notify-send -u critical -t 10000 'message'
export DISPLAY=:0 && notify-send -u critical -t 10000 'message'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/02/23 06:47