タグ

shellに関するhdkINO33のブックマーク (10)

  • プロンプトに時間表示 - hogehoge @teramako

    仕事では作業ログは大変重要な証拠となる。各コマンドの実行した時間も分かるとより良い証拠となる。しかし、各コマンド実行前後にdateコマンドを打つのは面倒だ。 できれば、自動で。そう、プロンプトなんかに表示されると大変嬉しい。Linuxなんかだと高級なbashやzshがあるのでプロンプトに\tや%Tがあるので楽なのだが、残念ながらAIXデフォルトのシェルであるkshには現在時間に置換してくれる特殊文字が無い。 POSIXは辛いよ...と泣き言を言っても仕方ないので、苦肉の策。trapを用いる。 システム・ユーザーズ・ガイド: オペレーティング・システムおよびデバイス - Korn シェル (POSIX シェル) の組み込みコマンド trapは主にシグナルを受け取った時の挙動を記述するコマンドだが、引数のsignalにDEBUGを指定するとコマンド実行後の動作を指定できるのだ。 ${HOME

    プロンプトに時間表示 - hogehoge @teramako
  • bashのプロセス置換機能を活用して、シェル作業やスクリプト書きを効率化する - 双六工場日誌

    @hirose31 さんが「シェルスクリプトでハマった件→【募】ステキな回避方法」でお題を出されていて、それに回答してみました。 その内容はリンク先を見てもらうとして、回答の中で使ったbashのプロセス置換について書かれた記事をあまり見ないので、回答で使ったプロセス置換のことをエントリにしてみたいと思います。 最初に注意点ですが、プロセス置換の機能は、bashやzsh*1の機能でPOSIX互換の機能ではありません。そのため、使用時には、対応していないシェルでは使えませんし、bashで使う場合も /bin/sh ではなく /bin/bash を明示的に指定する必要があります。たとえば、プロセス置換を使ったスクリプト「script.sh」に対して"$ bash script.sh" というコマンドは成功しますが、"$ sh script.sh" というコマンドは失敗します。この辺りの違いは「/

    bashのプロセス置換機能を活用して、シェル作業やスクリプト書きを効率化する - 双六工場日誌
  • expectで自動化 - いつかいつかと日が暮れて。

    CVSのリポジトリから最新を取得して、 public_htmlに設定するのを、expectを使って自動化。 以下の事を行う。*1 現在の日付を出力 CVSへの接続 CVSから最新の取得 CVSから切断 取得したプロジェクト内のCVSフォルダを削除 既存のpublic_htmlを日付をつけてリネーム 取得したプロジェクトをpublic_htmlにリネーム update.shとか適当なファイル名で作って実行。 #! /usr/bin/expect -- set timeout -1 #log_file file_name #### Setting #### ## TODO expect で$変数はそのまま使えるのか? ## Repository Name set repositoryName project_name \ #### Setting-END #### puts stdout "H

    expectで自動化 - いつかいつかと日が暮れて。
  • シェルスクリプトの処理境界が鮮明になる「名前付きブロック記法」なるものを考えてみた

    シェルスクリプトは長くなると処理の境界が不鮮明になりがち。 コメントで処理の境界を表現する工夫はよく見かけるが、もっと良い方法はないか考えてみた。 :コマンド、&&演算子、複合コマンド()や{}を組み合わせて書くと、処理の境界線がはっきりする。

    シェルスクリプトの処理境界が鮮明になる「名前付きブロック記法」なるものを考えてみた
  • bash のシェルスクリプト(関数)でオプション引数を扱う getopts 使い方サンプル - それマグで!

    シェルスクリプトで引数オプションを使いたい my_shell_script -a /usr/bin みたいに、bashのシェルスクリプトでも引数を扱いたい。 getopts を使えば引数が取れる bash では getopts を使えば、引数の処理を簡単に行うことができて便利。ruby などでは optparseに相当するやつです。 はじめに getopt / getopts の違いについて 全ての初めに。 getoptsについて読む前に知っておかなくちゃいけないことがある。 getopts コマンドとシェルのビルトインの二種類がある。 名前 種類 getopts シェル組み込み getopt コマンド・ファイル Google検索はgetopt/getopts を区別しないで結果を出すので注意が必要でした。 今回、調べたのは getopts です。 getopt は/usr/bin にある

    bash のシェルスクリプト(関数)でオプション引数を扱う getopts 使い方サンプル - それマグで!
  • シェルスクリプト高速化のツボ - 新・日々録 by TRASH BOX@Eel

    これは備忘録。 色々あって、まだ具体的なモノを何も作ってもないのにシェルスクリプトのパフォーマンス絡みでネタを収集してしまったので、ひとまずまとめてみた。 shellshock(bashのアレ)があったばかりなので、ちっとばかり微妙かも。 計測してボトルネックを探す まずは何よりも計測すること。time(1)を活用すべし。 データ量が多いと問題が表面化するのが定番のパターンなので、ワンライナー等でさくっとテストデータを作成して実験すると吉。 ループ構文よりもテキストフィルタを使う 一般的には、ループ構文を使うよりも、パイプでテキストフィルタに連結して処理した方が高速だ。 # NG seq 1 1000000 | while read i; do echo "$i"; done # NG # while readほどではないが遅い # (bashでは動いたが、dashやbusyboxのshで

    シェルスクリプト高速化のツボ - 新・日々録 by TRASH BOX@Eel
  • http://www.speech-lab.org/~hiroki/csh-whynot.euc

  • どさにっき - #!/usr/bin/env

    2006年6月21日(水) ■ DomainKeys _ えーと、DomainKeys ってのは要するに電子署名なので、署名された後でヘッダや文が改変されると検証に失敗する。DomainKeys はメーリングリストに弱いと言われる理由のひとつですな。 _ 自宅 postfix に milter を導入したので、DomainKeys を検証できるようにしてこのあたりの動作を注意深く観察してるのだが、このまえはじまった DNSOPS.JPのメーリングリストからのメール。 Authentication-Results: mx.maya.st sender=ロボットによる収集回避@dnsops.jp; domainkeys=pass なんで pass しとんねん。ML が Subject をいじってるんだから fail になるはずなんだが。Subject をいじらないメーリングリストとか、いじっ

    hdkINO33
    hdkINO33 2009/12/29
    言われてみりゃなるほどなんだけど、全然思い付かなかった。今度から使う
  • Bash&シェルスクリプトを極めるテクニックまとめ | OSDN Magazine

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

    Bash&シェルスクリプトを極めるテクニックまとめ | OSDN Magazine
    hdkINO33
    hdkINO33 2009/06/17
    zの話題が無いようだが……?
  • zsh for the working researcher

    zsh for the working researcher * Daichi Mochihashi daiti-m@is.aist-nara.ac.jp April 30, 1999 0. はじめに Unixに代表されるコマンド入力型の文化は世界の一つの側面であり、シェルはその 顔です。シェルに打ち込む文字列は言語に似て、一次元の記号列でありながら 豊かなイメージを持ち、多くの仕事を行うことができます。私はMacintoshが 大好きですが、GUIだけでなくそのような文字列によるシステムの操作にも ある種の美を感じ、また便利でもあると思っています。 したがって、システムとのコミュニケーションを豊かにするためには、その顔である シェルで表現できることを増やさなければなりません。多くの人は, (t)csh, あるいは bash を使っていると思いますが、このドキュメントではそれらの上位互換の

  • 1