タグ

shellに関するteramakoのブックマーク (46)

  • 自己追記によるFizzBuzz

    はじめに スーパーコンピュータシステムのファイル消失のお詫び 年末にこんなの↑が話題になったようで。 処理に時間がかかるシェルスクリプトの実行中に、そのスクリプトを上書きしたところ処理の途中から上書きした方のスクリプトの方が途中から動きだしてしまい、整合性が取れてないために大事故になったらしい 自分はそのときとっくに仕事納めして遊んでたので反応が遅れてるけど、今さらながらちょっとこの件について触れておいたほうがいいかもしれないので斜め上から言及しておく。つまり、外部要因によるスクリプト書き換えではなく、スクリプトが自分自身を書き換えながら動作を続ける例について。 自己追記FizzBuzz このFizzBuzzを解読したものを誰もポストしてくれないので、ウケなかったギャグを自分で説明する悲しさを感じつつ解説する。 n+=:; s=; : ${p=$(<$0)} [[ $n =~ ^(...)

    自己追記によるFizzBuzz
    teramako
    teramako 2022/01/06
    解説されてようやく理解できた。凄い。
  • シェルスクリプトを書くときにいつもやるやつを調べた

    bash のシェルスクリプトを書くときに、いつも脳死で以下をやっている。(同僚が整備してくれたものをコピペしている) エディタなり CI で shellcheck をまわす set -euxo pipefail と冒頭に書く こんな感じ #!/bin/bash set -euxo pipefail いつまでもコピペではさすがにアレなので、意味を調べたメモ。 shellcheck koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts イケてない書き方に警告を出してくれる それぞれの警告にはエラーコード割り振られていてとても便利 エラーコードごとに正誤例、解説が書かれているのでわかりやすい SC1000 の例 CI もそうだし、エディタのプラグインも充実 しているのでとりあえず入れておくと良い set

    シェルスクリプトを書くときにいつもやるやつを調べた
    teramako
    teramako 2021/02/18
    -xはデバック時のみかなー。他はだいたい同意。// IFSの例はfor arg in "$@"で回避できるので微妙に感じた
  • 原理原則で理解するbashの仕組み - Qiita

    はじめに 以前書いたエントリー、重大な脆弱性(CVE-2017-5932)で少し話題になったbash4.4の補完機能の便利な点で、bash4.4からでないとタブの補完機能のソート処理が制御できないという問題について、ソースコードレベルで調べた結果をまとめていたのですが、bashの実装そのものを深く掘り下げ過ぎてしまい、内容が膨大になったので、何回かに分けて書こうと思います。 今回はbashが起動されてからインタラクティブモードでキーボードの入力を待ち受けるまでのお話です。普段使っているbashがどのような処理を行っているのか一緒に覗いてみませんか? 検証ソースコード Bash version 4.1.0(1) release GNU bashの生誕 bashのプロセスが起動されるのはOSへのログイン時にユーザーのログインシェルがbashに設定されている場合、あるいはログイン後に明示的にba

    原理原則で理解するbashの仕組み - Qiita
  • シェルスクリプトを書く時に気をつけている事など - Qiita

    あくまでも個人的な意見であって、自分がシェルスクリプトを書く時に気をつけている事を備忘録的に列挙しているだけです。 「こうするべきだ」と押しつけている訳ではありません。 勿論「私はこうしている」とか「こうすると良いよ」という意見や議論は大歓迎です。 export (1) しないシェル変数は全て小文字で書く。 PATH や HOME などは環境変数なので大文字で。 スクリプト内で使っているのは単なるシェル変数なので小文字で。 使い方をちゃんと区別する事は重要だと思う。 シェルの変数展開を活用しよう

    シェルスクリプトを書く時に気をつけている事など - Qiita
    teramako
    teramako 2013/03/13
    『スペースで区切られたデータの構文解析は set (1) を活用しよう。』おお、なるほど。
  • Shell startup scripts — flowblok’s blog

    Update (2020-03-29) When I originally wrote this blog post, my intent was to describe how things worked on a typical system at the time. Unfortunately, the operation of bash startup scripts is dependent on patches added by OS distributions, compile-time options and if bash thinks it was invoked by sshd or rshd. I have no desire to add complexity to this post, so instead please read this as a rough

    teramako
    teramako 2013/02/20
    すげー図。めっちゃ複雑だ
  • awk v.s. bashどっちが強い?@OSC2011Tokyo

    OSC2011 Tokyo/Fallで、日gnu awkユーザー会の斉藤さんと行ったプレゼンテーションです。awkとbashの馴れ合い、もとい、共存共栄がテーマです。

    awk v.s. bashどっちが強い?@OSC2011Tokyo
    teramako
    teramako 2011/11/22
    すげー面白い!
  • JSLinux

    Run Linux or other Operating Systems in your browser! The following emulated systems are available: CPUOSUser InterfaceVFsync accessStartup LinkTEMU ConfigComment

    teramako
    teramako 2011/05/17
    あこがれの、rm -rf / ができたぞw
  • Quasis Demo — JavaScript Shell 1.4

    Quasis Demo — JavaScript Shell 1.4 Example: This demos the EcmaScript Quasi Strawman. To get started, choose one of the canned examples from the drop-down at the top right. Features: autocompletion of property names with Tab, multiline input with Shift+Enter, input history with (Ctrl+) Up/Down, Math, help Values and functions: ans, print(string), props(object), blink(node), clear(), load(scriptUR

  • Efficient data transfer through zero copy

  • bash 超プログラム術

    bash の解説なんて、ネット上には結構あったりするのだが、これをわざわざ公開しようというのは、次の理由による。 某ソフトハウスでのUNIX講座用に書いてしまったから。 ネット上にある bash 解説だと、表面的な構文解説程度であり、きっちりスクリプト言語として使い倒すレベルの解説はあまりない。まあ、プログラミング言語として凝ったサンプルもやってみようじゃないの、というノリで割とディープに解説する。 アクセスを増やすための人気取り(苦笑)。 まあ、そんな不純な目的による bash 解説である。とはいえ、日常的に使い慣れている bash であっても、「え、こんな使い方があったの!?」という発見もあることであろう。苦笑しながらでも読んでくれたまえ。だから、初歩的なリダイレクションなんかは解説しないからそのつもりで。 ちなみに参考書としたのはオライリー・ジャパン刊「入門 bash 第2版」である

    teramako
    teramako 2010/11/19
    すばらしい内容。
  • これだからシェルは… - 檜山正幸のキマイラ飼育記 (はてなBlog)

    シェル(主にbash)のスクリプトをたまーに書きます。シェルスクリプトの構文は全然憶えられないし、しょっちゅう間違います。そんなことを何度かこのブログに書いたことがあります。 シェル(bash)のfor文の違いを吸収するMakefile の書き方 シェルスクリプトのセミコロンの打ち所がわからん testコマンドのハイフンナンチャラが憶えられない 今日も間違いました。 if [ "$1" = ""]; then echo "Do Something" fi これはうまく動きません。 空白を1つ足してやる必要があります。 if [ "$1" = "" ]; then echo "Do Something" fi 左ブラケット '[' は、testというコマンドの別名で、[ "$1" = ""] は、次のように分解されます。 第1引数:"$1" 第2引数:= 第3引数:""] これはうまくなくて

    これだからシェルは… - 檜山正幸のキマイラ飼育記 (はてなBlog)
    teramako
    teramako 2010/04/28
    NULL値であるかどうかは、 if [ -z "$1" ] を使うかな。 // id:basyura シェルのif はコマンド実行のリターンコードで条件分岐してると考えると分かり易いです。if grep "hoge" file >/dev/null; then ...fi みたいのも説明が付く
  • SQLShell, a cross-platform, cross-database SQL command tool

    SQLShell, a cross-platform, cross-database SQL command tool Warning: While this project isn’t abandonware, exactly, I don’t use it much any more, so it doesn’t get a lot of maintenance love. Introduction SQLShell is a Scala-based SQL command-line tool, similar in concept to tools like Oracle’s SQL Plus, the PostgreSQL psql command, and MySQL’s mysql tool. Some features at a glance Connection param

  • nyaos.org

    The “NYAOS” Series are the enhanced commandline shells for Windows and other OSes. OS/2 DOS Windows Linux License Build Lua Code Support

  • BASICインタプリター « vi USP友の会

    teramako
    teramako 2010/01/04
    すげー
  • fork bom - 落書き、時々落学

    非常に危険なコードだそうです(bash). :(){ :|:& };:詳しくは,Fork爆弾 - Wikipedia こんな短かいコードが… http://ghost1227.com/2009/09/on-forkbombs/には他の言語のコードものってます. ちなみに,fork bom を防ぐ一つの方法としては,プロセス数の上限を定めるという方法があるそうです. それは,/etc/security/limits.conf で設定できるみたいです. こういった,単純なものほど怖いのでしょうか.

    fork bom - 落書き、時々落学
    teramako
    teramako 2009/09/04
    想像してぞっとした。他言語だったらtoo much recursionとかって怒られたりするのかな
  • xpcshellでHTMLパース - hogehoge @teramako

    xpcshellでHTMLDocumentって無理なのかなぁ - The Other Road Ahead タイトルどおりかと思っていたけど、よく読んでみると目的としてはHTMLのパースなのだと思う。 もし、そうであるならば、完全では無いけど出来る。 const Cc = Components.classes; const Ci = Components.interfaces; var ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); var suh = Cc["@mozilla.org/feed-unescapehtml;1"].getService(Ci.nsIScriptableUnescapeHTML); var parser = Cc["@mozilla.org/xmlextras

    xpcshellでHTMLパース - hogehoge @teramako
  • xpcshellでHTMLDocumentって無理なのかなぁ - The Other Road Ahead

    やりたかったのは、xpcshell上で、htmlソースからHTMLDocument作ってしまえば、xpathなんかも使えて簡単にスクレイピングしたり、今じゃsqliteなんかもxpcom経由で叩けるのでシリアライズも簡単だからって理由で調べたんだけど、やっぱ無理そう。Mozillaでプログラミング(XUL) その3http://pc12.2ch.net/test/read.cgi/tech/1164625238/415415 名前:デフォルトの名無しさん[sage] 投稿日:2009/08/13(木) 15:46:40前スレにも出てましたが、URLからHTMLDocumentオブジェクトって生成できないんでしょうか?前スレで解決してた方は@mozilla.org/webshell;1を使って生成していたようですが、xpcshellでwebshell.loadURIを叩くと落ちてしまいます。

    teramako
    teramako 2009/08/14
    僕も同じこと考えて諦めた口
  • gitのcommit、push待ちの状態をプロンプトに表示すると結構便利 - (ひ)メモ

    gitのブランチ名をプロンプトに表示すると結構便利 の続き。 gitでcommitし忘れ、pushし忘れないように、 _color_() { color=$1; shift echo -e "\e[${color}${@}\e[0m" } fg_black() { _color_ "30m" $@; } fg_BLACK() { _color_ "30;1m" $@; } fg_red() { _color_ "31m" $@; } fg_RED() { _color_ "31;1m" $@; } fg_green() { _color_ "32m" $@; } fg_GREEN() { _color_ "32;1m" $@; } fg_yellow() { _color_ "33m" $@; } fg_YELLOW() { _color_ "33;1m" $@; } fg_blue()

    gitのcommit、push待ちの状態をプロンプトに表示すると結構便利 - (ひ)メモ
  • Bash&シェルスクリプトを極めるテクニックまとめ | OSDN Magazine

    UNIXやLinuxのエキスパートになるのに避けて通れないのが、Bashに代表されるコマンドラインシェルによる操作だ。そこで記事では、「Bashのカスタマイズ」「シェルスクリプトの高等テクニック」「Bash以外の高機能シェル」の3つについて、SourceForge.JP Magazineで過去に掲載された解説記事を紹介する。 Bashをカスタマイズして使いこなす Bashは非常にカスタマイズの幅が広く、またちょっとした改良や簡単なシェルスクリプトの利用により、大きく作業効率が改善する。ここでは、Bashのカスタマイズテクニックを解説する記事を紹介する。 コマンドラインでシェルのエイリアスと関数を使って作業を効率化する GNU/Linuxシステムを最大限に活用するには、やはりコマンドプロンプトとシェルスクリプトへの習熟が欠かせない。とはいえ、そうした処理はなるべく手早く済ませたいものだ。

    Bash&シェルスクリプトを極めるテクニックまとめ | OSDN Magazine
    teramako
    teramako 2009/06/12
    シェルと言ったときにスクリプト機能ばかりでUIとしてのシェル機能の紹介が少ないのはなぜだろう...
  • Korn――高機能なシェル | OSDN Magazine

    Linuxのシェルについてはおそらくご存じのことだろう――LinuxでKonsoleやxtermなどの端末ウィンドウを開いてコマンドを入力するとき、文字を受け付けているのが他でもないLinuxのシェルだ。あるいはファイルにコマンドを書き込んで、実行可能にして、実行するということをしているのなら、あなたはもう立派なシェルプログラマだと言えるだろう。しかし利用可能なシェルには様々なものがあって、それぞれに少しずつ違った特徴があるということはご存じだろうか。そのようなシェルの中で個人的に私が気に入っているのがKornシェルだ――この記事を読み終わる頃には、あなたのお気に入りにもなっているかもしれない。 一般的なLinuxでは、デフォルトでbash(Bourne again shell)が使用されている。そのbashからKornシェルに移行する前に、Kornシェルのメリットを整理しておこう。まず、

    Korn――高機能なシェル | OSDN Magazine
    teramako
    teramako 2009/06/12
    『Kornシェルはbashとの完全な後方互換性を保っている。』うそを付くのは良くない。bashの方が高機能