この問題を解けたらスゴい!?シェルスクリプトとファイルディスクリプタの話
今回はシェルスクリプトのちょっとしたクイズからファイルディスクリプタとリダイレクトの動作を解説します。 早速ですがこのシェルスクリプトの問題を解けますか? 問: bashで以下のシェルスクリプトを実行した場合に表示される文字列はどれか? ※ echo の -n は改行を出力しないオプション ( echo -n "A" > /dev/null echo -n "B" 2>&
今回はシェルスクリプトのちょっとしたクイズからファイルディスクリプタとリダイレクトの動作を解説します。 早速ですがこのシェルスクリプトの問題を解けますか? 問: bashで以下のシェルスクリプトを実行した場合に表示される文字列はどれか? ※ echo の -n は改行を出力しないオプション ( echo -n "A" > /dev/null echo -n "B" 2>&
エンジニアであれば、ログの調査、環境構築、データの整形などLinuxコマンドを書く機会はたくさんあるかと思います。 コマンドは所謂「枯れた技術」ですが、「枯れた技術」であるが故に話題に上ることは少なく、集中的に学ぶ機会は少ないように感じます。 結果として、毎回コマンドを使ってやりたいことを上手く実現できずにモヤモヤしている方も多いのではないでしょうか(私のことです)。 シェル芸本との出会い そ
みなさん元気にシェルスクリプトを書いていますか? 今回は bash で任意のコマンドを非同期実行しつつ、その実行結果を手軽に受け取る方法を紹介します。 よく利用される bash の非同期実行は & をコマンドの最後に付けてバックグランドで実行する方法ですが、以下のような制限や面倒くささがありがちです。 実行結果として簡単に受け取れるのは終了ステータスだけ 実行結果を得たい場合は一時
今回は意外と知らないかもしれないbashの「プロセス置換」という機能を紹介します。 UNIXでは「1つのプログラムは1つの機能にとどめ、フィルタとして動作できるようにせよ」という設計思想があります。 その言葉の通り、大抵のコマンドはパイプでつないでフィルタのように動作可能ですが、必ずしも理想的に設計されていない、もしくは仕様上できないコマンドもあります。 例えば、よく使う diff コマンドが