沢山のファイルの名前を変更したり、拡張子を変更する際には、シェル上での操作が便利なことがあります。この場合、ファイル名や拡張子、ファイル名から拡張子を取り除いたものを取得できると便利です。 basenameとdirnameの利用 MacOSやLinuxではbasenameコマンドやdirnameコマンドを利用すると、パス名からのファイル名の取り出しやパス名からのディレクトリ部分の取り出しが出来ます。この2つのコマンドの動作は
![bashの変数展開によるファイル名や拡張子の取得 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/19189b74cc6a19daae5024617a8bbe76e10fdaa4/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9YmFzaCVFMyU4MSVBRSVFNSVBNCU4OSVFNiU5NSVCMCVFNSVCMSU5NSVFOSU5NiU4QiVFMyU4MSVBQiVFMyU4MiU4OCVFMyU4MiU4QiVFMyU4MyU5NSVFMyU4MiVBMSVFMyU4MiVBNCVFMyU4MyVBQiVFNSU5MCU4RCVFMyU4MiU4NCVFNiU4QiVBMSVFNSVCQyVCNSVFNSVBRCU5MCVFMyU4MSVBRSVFNSU4RiU5NiVFNSVCRSU5NyZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZGI1MWE4OWI1NmE1M2Y0ODkzMzI3YTNmMTNiMmJiNmM%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwbXJpaG8mdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTI2YjI0ODE3M2RjYjNhY2YwNTI3ZmM0MzI5MWJjOGQ1%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D33fa7cf573480ae191e3e5f5c1781a59)
横田です。去年も主にインフラ系を中心に色々と勉強会に行ってまいりました。というわけで、今年も私が独断と偏見で選んで「行っておくべき勉強会」を発表いたします。 《定番勉強会》まずは、昨年も掲載した定番勉強会をご紹介いたします。 《100回おめでとう!元祖 ○○Study。「BPStudy」》BPStudyは株式会社株式会社ビープラウドが主催するWeb系技術勉強会です。古くからやっているIT系勉強会では「○○Study」という名前の勉強会が多いのですが、この「BPStudy」はその元祖的な存在にあたります。 元祖だけあって勉強会の内容はスタンダードで、基本的に二人の講演者+懇親会といった構成が多い気がします。内容は固定化されておらず直近の技術トレンドの話や「エンジニアの働き方」等、幅広い内容です。 私も何回か参加しておりますが、非常に勉強会らしい勉強会で、出席した回は毎回勉強になります。IT勉
この記事は、POSIX原理主義の思想で世界征服を目論む秘密結社シェルショッカー日本支部がお送りします。 物語に登場する名称は一部を除き架空のものであり、実在する人名・団体名等とは一切関係ありません。 Twitterリア充祭、絶賛開催中 全世界70𥝱人(70𥝱人=70,000,000,000,000,000,000,000,000人)のプログラマーどもよ、メリークリスマス。私こそ秘密結社シェルショッカー日本支部のリッチー大佐である。 こんな時間に、しかもクリスマスの夜にQittaを訪れているお前たちなら当然、ひとりでネットと戯れているはずだな!しかし、ネットの向こうには、カノジョやデートスポット、高級な料理の写真とともに自分がいかに勝ち組であるかをTwitterでひけらかすリア充どもが、今まさに増殖している。しばらくの間、Twitterを開けばそんな奴らのツイートが洪水のように押し寄せる
パスの末尾に/があるかないかを気にしたくない 文字列を結合してパスを生成したりするときに、パスを格納した複数の変数を文字列結合するときがあります。 dirHome="/var/lib/hoge/" workDirName="work" echo "${dirHome}${workDirName}" # /var/lib/hoge/workと表示される しかし、dirHomeやworkDirNameのような変数をコンフィグファイルで設定していたり、実際に参照するところと定義箇所が遠いときがあると厄介なことが起こりえます。 例えば、下記のようにdirHomeの末尾に/がなかったらどうなりますでしょうか?
続きを書きました。 少し前にakrさんからもらったパッチで知った Shellwords というモジュールが便利だったので紹介します。 Rubyスクリプトからシェルにコマンドを投げ込むときに必要なことを代わりにやってくれるいいやつです。 module Shellwords (Ruby 2.2.0) インストール 標準添付なのでrequireすればすぐに使えます。 require 'shellwords' 問題 コマンドから引数を受け取ってlsするスクリプトを考えてみます。 require 'shellwords' system("ls #{ARGV[0]}") だいたいのケースはこれでいいのですが、引数に空白入りのファイルが渡されたときなどに問題が起きます。 $ ruby ls.rb "foo bar.txt" # foo\ bar.txt でも同様 ls: bar.txt: No such
いろいろ混同されがちなやつ。筆者もまったく混乱してないとは主張しがたい。 この記事は初版を2014年1月に書きはじめ、いまのバージョンを2015年4月頃に書いてたけど、擬似端末/仮想コンソールあたりの理解が怪しいのでお蔵入りになってました。ので、そのあたりの説明は微妙。 コマンドライン(command-line) 文字でコマンドを打ち込んで操作するインターフェイスのこと。 シェル(shell) 人間様がOSを操作するためのインターフェイスのこと。貝のようにOSの核(カーネル)を守ってるからシェルと呼ぶんだって噂。 大別すると コマンドラインシェル と グラフィカルシェル がある。 Unixシェル UNIXやUNIX-likeなOSで利用されるコマンドラインシェル。現代ではGNU BashやZ Shellなどが知られる。 Shellにもいくつかの系統があるが、主にBシェル(Bourne Sh
すこし記事が長いため、簡単なアウトラインを書いておきます。要点だけ掴みたい場合は、最終項の「まとめ」を読むのがいいかもしれません。 コマンドライン引数の一般的な解析手法 それぞれの特徴 〜 getopt と getopts の違い getopts(メリット・デメリット) getopt(メリット・デメリット) 自前で解析しちゃう(唯一のデメリット) まとめ ============================= コマンドライン引数を処理する一般的な手法として、 getopts getopt shift などで自力で解析 といった具合に、上から順に考えつくかと思います。getopt(3) は UNIX において、コマンドの引数を処理する一般的な C 言語のライブラリ関数です。それを用いて実装されたコマンドが getopt(1) です。Bourne シェル系だと内部関数になりますが、同系統の
ASCII Booksのサイトをご利用いただき、ありがとうございます。 2016年12月6日をもちまして、サイトを閉鎖させていただくことになりました。 今までサイトをご利用いただき、ありがとうございました。 アスキー・メディアワークスを引き続き、よろしくお願いいたします。
shell script は普段さけて通りたいと願ってやまないわけですが、たまには書かないといけないことがあるので、そういうときは覚えておくと便利な tips を2つ。 autodie っぽくするset -eとすると、コマンドの実行に失敗したときにそこで実行がとまるので便利。 #!/bin/sh set -e perl -e 'die' echo SHOULD NOT REACH HEREとすると % ./hoge.sh Died at -e line 1. % echo $? 255となって、最後までいかずに死にます。 複数のコマンドを順番に実行するときに便利。 なお、以下のような挙動をするんだそうです。 ただし失敗したコマンドが until または while ループの一部である、 if 文の一部である、 && または || リストの一部である、 コマンドの返り値が ! で反転されてい
Pythonの拡張された対話シェルとしてはIPythonが有名ですが、bpythonというのもあります。 Home - the bpython interpreter bpythonはPygmentsを使用して入力中のコードをシンタックスハイライトしたり、入力中に次々と入力候補を表示してくれたり、docstringを表示してくれたりします。 また、入力したコードをファイルに書きだしたり、コード貼り付けサイトに投稿したりすることもできます。 インストールはeasy_installやpipでOK。 $ pip install bpythonPython3にも対応しているし、よくできるなー。 あと略称がbpというのもいい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く