Help us understand the problem. What are the problem?
![よく使う 9 つの便利なシェル芸 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/209c45f99f26a683ca1d3124dc9cbbf4bdab5ddc/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fqiita-user-contents.imgix.net%252Fhttps%25253A%25252F%25252Fcdn.qiita.com%25252Fassets%25252Fpublic%25252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%253Fixlib%253Drb-4.0.0%2526w%253D1200%2526mark%253Dhttps%25253A%25252F%25252Fqiita-user-contents.imgix.net%25252F~text%25253Fixlib%25253Drb-4.0.0%252526w%25253D916%252526txt64%25253D44KI44GP5L2_44GGIDkg44Gk44Gu5L6_5Yip44Gq44K344Kn44Or6Iq4%252526txt-color%25253D%25252523212121%252526txt-font%25253DHiragino%25252520Sans%25252520W6%252526txt-size%25253D56%252526txt-clip%25253Dellipsis%252526txt-align%25253Dleft%2525252Ctop%252526s%25253Dc6b9de1b809bc4307f159070f5e59179%2526mark-x%253D142%2526mark-y%253D112%2526s%253Da7ecf7a2f523da01808b6eda3a9053f1%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-4.0.0%2526w%253D616%2526txt64%253DQGI0YjRyMDc%2526txt-color%253D%252523212121%2526txt-font%253DHiragino%252520Sans%252520W6%2526txt-size%253D36%2526txt-align%253Dleft%25252Ctop%2526s%253D5fea236f17855a545df9199ba5a929eb%26mark-x%3D142%26mark-y%3D491%26s%3D1f6e7c707596b58718da03ed52929762)
シェル上だと動くのにcron上だと動かない。 よく聞くお話ですよね。 大体はcron上と普段のシェル上で環境変数が違うために起こる問題です。 そういう時に使えるtipsを共有します。 個人のマシン上で適当に動かすようなcronだと みたいにしてログインシェルを間に噛まして環境変数を上書きして実行することでごまかしたりもできます。 これまた別の依存する箇所を増やすので 個人のマシンかrcファイルがちゃんと管理されているような状況以外ではオススメできません。 なのでcron上で実行される状況とほぼ同じ状況でスクリプトを実行してみましょう。 cron上では環境変数はほぼ空なので環境変数を空にしてみましょう。
できればシェルスクリプトなんて書きたくないんだけど,まだまだ書く機会は多い.シェル芸やワンライナーのような凝ったことではなく,他のひとが使いやすいシェルスクリプトを書くために自分が実践していることをまとめておく. ヘルプメッセージ 書いてるシェルスクリプトが使い捨てではなく何度も使うものである場合は,本体を書き始める前に,そのスクリプトの使い方を表示するusage関数を書いてしまう. これを書いておくと,後々チームへ共有がしやすくなる.とりあえずusage見てくださいと言える.また,あらかじめ書くことで,単なるシェルスクリプトであっても自分の中で動作を整理してから書き始めることができる.関数として書くのは,usageを表示してあげるとよい場面がいくつかあり,使い回すことができるため. 以下のように書く. function usage { cat <<EOF $(basename ${0})
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く