タグ

programmingとbashに関するomomomのブックマーク (10)

  • 【謎】本当にあったfindコマンドの怖い話【おもしろ現象】

    3/21 22時頃: 質問編へのリンクを撤去し、タイトルを変更しました。(元のタイトルは「【謎】当にあったfindコマンドの怖い話【未解決→解決済み】」) 要約 100万個のファイルに対して、find コマンドから始めて mv コマンドでファイル名を変更するワンライナーを実行すると、 mv コマンドが約158万回実行されました。 背景 これは、Software Design 2018年4月号 Software Design 2018年4月号 の「シェル芸人からの挑戦状」の記事執筆中に遭遇した不思議な現象です。1 初めはコラムに書こうとしていたのですが、結局原因がわからず、解説が書けなかったために紙面からは外すことにしました。 流石に結論が「わかりませんでした」で雑誌には載せられないので……。 現象自体は面白かったため、代わりに個人のブログの方に書くことで共有します。 (掲載の許可は頂いて

  • Bashアプリケーションをテストする | POSTD

    以前、bashスクリプトをテストする仕事に取り組んだことがあります。最初、Pythonユニットテストを使うことにしましたが、プロジェクトに外部技術を持ち込むのは気が進みませんでした。そこで、仕方なく、悪名高い bash で書かれたテスト用フレームワークを使いました。 既存ソリューションの概要 手に入るソリューションを探してGoogle検索しましたが、選択肢はほんの少ししかありませんでした。そのうちいくつかについて、詳しく見ていきましょう。 重要になるのは、どんな基準でしょうか? 依存関係: bass のテスト用フレームワークを選ぶときに、 python 、 lua などのシステムパッケージも一緒に引きずり込むのは嫌ですね。 インストールの難しさ:継続的な開発の実装とTravis CIでの継続的な統合も仕事の1つだったので、私にとってインストールにかかる時間と手間数が妥当だということは、重要

    Bashアプリケーションをテストする | POSTD
  • bashのパラメータのブレース展開での拡張子・ディレクトリ名・ファイル名の取得・拡張子の置換 - それマグで!

    bash のbrace 展開で文字列を置換する 文字の置換は、bashはとても楽ちんである。 NAME=www.example.com echo ${NAME//./_} # www_example.com echo ${NAME//./_} # www_example_com これをもう少し掘り下げる。 bash でファイル名から拡張子を取出す方法 ファイル名から拡張子を取出すのはカンタンでした。 path=/etc/apache2/httpd.conf extension=${path##*.} #=> conf 魔法の記述方法 ${varname##*.} を使うと 手軽に拡張子を取得できる。 拡張子を書き換える方法 拡張子を書き換えるには、変数の書き換えを使えば直ぐ出来る。 f_name=httpd.conf txt_name=${f_name/.*/.txt} #=> httpd

    bashのパラメータのブレース展開での拡張子・ディレクトリ名・ファイル名の取得・拡張子の置換 - それマグで!
  • 給料のよいプログラミング言語トップ5 - 1位はBash

    fossBytesに8月9日(米国時間)に掲載された記事「Top 5 Highest Paying Programming Languages of 2016」が、Packtが1万1000人以上のITプロフェッショナルを対象にした調査をベースとした、給与支払いの高いプログラミング言語ランキング2016年版を紹介した。 紹介されている給料の高いプログラミング言語は次のとおり。 Bash 10万米ドル(約1010万円) Perl 9万5000米ドル(約960万円) Scala 9万米ドル(約910万円) SQL 6万2000米ドル(約630万円) Delphi 6万米ドル(約610万円) 同記事では、ほかにも人気の高いプログラミング言語や人気の高いWeb開発フレームワーク、開発者コミュニティが興味を持っているアイデアのランキングも掲載されている。それぞれ掲載されているランキングのトップ5は次の

    給料のよいプログラミング言語トップ5 - 1位はBash
  • 何もしない組み込みコマンド ":" (コロン)の使い道

    Bash でシェルスクリプトを勉強していくと出会うのが : (コロン)という名前の組み込みコマンド。このコマンドは何もしないコマンドです。 こんなコマンドの存在は不思議だなと思う反面、C言語にも void という型があったり(関数のような形で存在するのは JavaScript とかですね)、LaTeX にも \relax があったり、何もしない命令というものは機械語の NOP からある普通のものです。 この Bash の : の使い道についてまとめてみました。 何か書かなければならないところに仮置きする 例えば「ここに制御構造を置くんだけど、この節に入るものは後で書くんだけどな〜」といった場合、制御構造の節の中に何も書かないと Bash は構文エラーとなります。 #!/bin/bash arg="$1" if [ -z "$arg" ] ; then echo "デフォルトモード開始" e

    何もしない組み込みコマンド ":" (コロン)の使い道
  • そのシェルスクリプトもうちょっとシンプルに書けそう Tips集(Golf/シェル芸ではない) - Qiita

    Shell Script Advent Calendar 2015 4日目 の投稿です。 以前から自分用にメモしていたものを文字起こししました。 はじめに 仕事でシェルを使い始めて3年くらい経ちました。 途中、pythonruby でスクリプト作ったり、ちょっと zsh に浮気したりしましたが、なんだかんだで今も Bash を使うことが多いです。 この3年間、スーパーシェル芸人(@ebanさん)にご教授頂いたり、Golfしたり(@ebanの影響)、シェル芸勉強会に参加したり(@ebanの影響)してきました。 そんな3年間のまとめとして、シェルスクリプト初めましてだった3年前の私に向けたTips集を書いてみました。 趣旨 各項目ごとに、まず初心者(過去の私がやってた)あるある実装を例示して、その次に、より良さげな実装を例示する構成としています。 実行環境 OS Mac OS X Yos

    そのシェルスクリプトもうちょっとシンプルに書けそう Tips集(Golf/シェル芸ではない) - Qiita
  • Bashのよくある間違い | Yakst

    原文は2015年8月22日時点のものを利用しており、それ以降に追記、更新されている可能性があります。 翻訳は原作者の許可を得て公開されています。 Thanks for GreyCat! このページはBashプログラマーが陥りがちなよくあるエラーについてまとめました。以下の例は全てなんらかの欠陥があります。 クオートをいつも使い、どんな理由があっても単語分割を使わなければ、多くの落とし穴からあなた自身を守ることができます!単語分割はクオート表現をしない場合にはデフォルトでオンになっている、Bourneシェルから継承された壊れたレガシーな設計ミスです。落とし穴の大半はクオートされていない展開になんらか関連し、単語分割しその結果をグロブします。 1. for i in $(ls *.mp3) BASHプログラマーたちがループを書く際にもっとも犯しがちなよくあるミスは以下のような感じです。: f

    Bashのよくある間違い | Yakst
  • biopapyrus | 風ふけば蓮の浮き葉に玉こえて 涼しくなりぬ日ぐらしの声

    R / statistical and graphical techniques, statistical tests, GLM

  • シェルやシェルスクリプトで乱数を使う2つの方法

    The main aim is to document the hurdles that most of us face as UNIX/Linux/BSD sys admin in our day today life. シェルまたはシェルスクリプトで乱数を使いたいと思うことが時々ある。コマンドをまとめていくという軽い利用を越えて、プログラミング的な要素が強くなってくる場合にはそうした要求がでてくる。しかしシェルスクリプトは一般的なプログラミング言語ではないため、乱数を生成するような関数は提供されていない。 シェルやシェルスクリプトで乱数を使う方法はいくつかあるが、Bash Shell Generate Random Numbers - nixCraftにおいて紹介されている2つの方法が、ひとつは簡単な方法、もうひとつはシェルに左右されにくい互換性の高い方法として興味深い。紹介されている

    シェルやシェルスクリプトで乱数を使う2つの方法
  • Batsh·Bashスクリプト、Windowsバッチファイルを生成するプログラミング言語 MOONGIFT

    最近、altJSに代表されるような言語を抽象化したプログラミング言語が人気です。素のままに使うのではなく、抽象化することでより優れた書き方に変換できたり、多数のフォーマットへの変換を容易にします。 Batshもその一つです。Batshという代替言語から、BashスクリプトとWindowsのバッチファイルを生成することができます。 Batshの使い方 左側がBatsh、右側がBashスクリプトへの変換結果です。 同じスクリプトからWindowsのバッチファイルを生成。 関数も使えます。 Windowsだとcallなんですね。 Batshを覚えてしまえばBashスクリプトもWindowsのバッチファイルも同じ書き方で対応できるようになります。あまり使う機会のない言語の場合、覚えておくのも大変です。Batshを習得しておけばLinux/Windows環境の両方で便利に使えるでしょう。 Batsh

    Batsh·Bashスクリプト、Windowsバッチファイルを生成するプログラミング言語 MOONGIFT
  • 1