タグ

bashに関するtoenobuのブックマーク (4)

  • 標準出力をファイルのように扱う方法、例えば2つのコマンドの出力結果のdiffを取るとか - Qiita

    command1 > out1 command2 > out2 diff out1 out2 rm -f out1 out2 これは Process Substitution という名前の機能です。 ちなみに echo <(command) すると /dev/fd/63 などと表示されます。 これは一時的に作られたファイルディスクリプタの名前で、そのファイルディスクリプタは実行されたcommandの標準出力に繋がっており、他のプログラムからはファイルと同じように扱うことが出来る、というわけです。 とっても便利なので、覚えといて損はないです。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back use

    標準出力をファイルのように扱う方法、例えば2つのコマンドの出力結果のdiffを取るとか - Qiita
    toenobu
    toenobu 2019/03/18
    “Process Substitution”
  • test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog

    test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 拡張 POSIX シェルスクリプト Advent Calendar 2013、15日目の記事です。 書くのが遅れ、ネタは尽きかけ、 マニアックさやニッチさが足りなくなってきているような気がします。 ふつうの内容ですみません。 今日は test, [, [[ コマンドの違いについてざっくり紹介します。 [[ がある bash, ksh, zsh ならば test と [ の使用は避け、 [[ を使用すべきです。 [ は慎重に使わないと様々な罠にかかるため危険です。 (翌日のネタも併わせてどうぞ) test と [ の違い どちらもシェルの組込みコマンドです。名前が違うのと [ は最後の引数を ] にしなければいけない縛りがある以外、 動作まった

    toenobu
    toenobu 2013/12/17
  • シェルプログラミング シェルの展開 - kozy.heteml.jp

    展開の種類と順序 † brace expansion tilde expansion parameter and variable expansion arithmetic expansion command substitution word splitting filename expansion システムがサポートしている場合のみ、 process substitution ↑ brace expansion † カンマで列挙されたものが展開される。 $ echo a{d,c,b}e ade ace abe ドット×2で連続した範囲が展開される。連続として指定できるのは数字or1文字のアルファベット(シーケンスを認識できるもの)となる。 $ echo {0..10} 0 1 2 3 4 5 6 7 8 9 10 ステップ数を1以外にも出来る。 $ echo a{0..30..5}b

    toenobu
    toenobu 2013/02/03
    シェル展開
  • シェルスクリプトはエレガントでなければならない

    /bin/shの実体としてはash(dash)、bash、kshの採用例が多い。どのシェルもBourne shellの機能に加えて、拡張機能を提供する。 FreeBSDなどの*BSD系のOSは、ashを/bin/shとして使っている。ashはPOSIX.1(POSIX:2008)にいくらかのBSD拡張機能を取り込んだシェルだ。メモリをあまり消費せず、高速に動作し、ほかのライブラリに依存することが少ない。従って、rootやレスキューシステムのインタラクティブシェル、システムのシェルスクリプトといった場面で採用されている。 Mac OS Xはbashを/bin/shに採用している。FedoraやopenSUSEなどのLinuxディストリビューションもbashを/bin/shに採用している。LinuxディストリビューションでもUbuntuやDebian、Linux Mintなどは、高速に動作する

    シェルスクリプトはエレガントでなければならない
  • 1