geta1972TweetPocketCheckたくさんのIT会社の開発部員と話をしてきて、ほとんどのプログラマーがshell言語を軽視していることに気が付きました。「なんでPythonで書かないの?」とか「phpだけでなんとかなるよ」という風に言っているセリフをよく耳にしますが、「どの言語で書くのが正しいか?」という議論ではなく、「どのくらいの言語でプログラミングできるか」という事の方が興味がある自分としては、特定言語に縛られているエンジニアと話をすると、どうしても物足りないエンジニアという見方をしてしまいます。プログラム言語って、まるで宗教のように感じるのはおそらくこうした信仰者がいるためかもしれませんね。できる限り多くの言語が扱えたほうが良いという価値観は誰もが持っているのに、自分の範疇しか興味を示さないエンジニアと話をすると、本当に残念で仕方ありません。そんな話はどうでもいいのですが、今回は、shell言語を使っている時にたまに発生するファイルやディレクトリの存在可否を備忘録として残しておきます。任意のファイルを作る時に、ファイルの親階層になるディレクトリが作成されているか確認して、存在しない場合は、mkdirするという感じです。ファイルをcatする前に、対象のファイル(階層)が存在していなければエラーが変えるので、catする前に存在確認しておく必要もあります。phpであれば、is_file()関数やis_dir()関数で簡単に確認できますが、shell言語では”-e”オプションだけというもっと簡単に確認できます。"false"fi使い方と実行結果は以下のような感じです。/var/www/html/hoge.txtfalsetrueとfalseの返り値は利用しやすいように変更して使えますし、その場所に処理を書いてしまうことも可能です。数行のプログラムなので解説はさほど必要ないかもしれませんが、”-e”オプションでファイルやディレクトリの存在確認をしているだけなのですが、実はshell言語のif文で使えるオプションは、非常に色々な種類があり、機能豊富なのです。まとめてみると以下のような感じです。pathif文には、他にも比較オプションなどもあるので、興味のある人はリファレンスページなどで勉強してみましょう。参考shell言語のif文をわかりやすくまとめてくれています。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。