2015-09-01から1ヶ月間の記事一覧

UNIXシェルスクリプト第10章 Part1

ファイルの連結、表示を行うシェルスクリプト Cat #!/bin/sh シェルスクリプトの最初にはこの宣言が必要。 /bin/shで動作させるため。 if [ ! -r "$1" ] ; then -rオプションはファイルが存在し、読み込み可能かどうかを判定する。 IFS= while read LINE rea…

UNIXシェルスクリプト第9章 Part11

そのシステムを判断する名称を出力する関数 SystemType.sh _HOSTNAME=`hostname | sed 's/\..*//'` hostnameコマンドは、そのマシンのホスト名称を出力するものだが、 システムによってはドメイン名称も一緒に出すものがある。 /..* は最初のドット以後全部…

UNIXシェルスクリプト第9章 Part10

2つの文字列を比較する関数 StrCmp.sh ※2つの文字列を返し、3つの結果を返す関数。 前者と後者が等しければ 0 前者のほうが後者より小さければ -1 前者のほうが後者より大きければ 1 を標準出力に出力する。 _TMP=`{ echo "$1"; echo "$2"; } | sort | sed -…

UNIXシェルスクリプト第9章 Part9

応答要求メッセージを出力する関数 Prompt.sh echo "${@-> }\c" echo -n "${@-> }" ${@-> } という部分は $@ と ${variable:-value} , ${variable-value} の組み合わせ。 応答要求のスタイルを定型化した関数 Question.sh if [ $# -lt 3 ] ; then -lt は Les…

UNIXシェルスクリプト第9章 Part8

システムのタイプが正しいかどうかを判定する関数 IsSystemType.sh ※unameコマンドを使ってシステムの名前を取得する。 uname -s OSの名称 uname -m ハードウェアのタイプ uname -r OSのリリース番号 if [ "$1" = "`uname -s`" ] ; then return 0 elif [ "$1…

UNIXシェルスクリプト第9章 Part7

文字列が数値化どうかを判定する関数 IsNumeric.sh ※シェル変数に代入されている値は、たとえ数値であれ文字として扱われる。 しかしexprコマンドなどは。その文字列を数値として計算させることができる。 expr "$1" + 1 > /dev/null 2>&1 実行終了ステータ…

UNIXシェルスクリプト第9章 Part6

2つのファイルの日付を比べる関数 IsNewer.sh ※更新時刻に関して説明。 ファイルのタイムスタンプには3通りある。 アクセスした時刻、ステータスの変更時刻、修正時刻。 if [ ! -f $1 -o ! -f $2 ] ; then -o はAOR条件演算子で、どちらかが真であれば真。 …

UNIXシェルスクリプト第9章 Part5

質問を出して、YesかNoの応答を取得する関数 GetYesNo.sh while : while文の無限ループを作る。 if [ "`echo -n`" = "-n" ] ; then echo "$@\c" else echo -n "$@" fi echoコマンドはシステムによって改行コードを抑止する方法が異なる。 -nオプションが使え…

UNIXシェルスクリプト第9章 Part4

ファイルやディレクトリの完全パス名を表示する関数 FullName.sh if [ $# -ne 1 ] ; then -ne は != を意味する。$#は引数の数を表す。 echo "Usage: FullName filename | directory" 1>&2 標準出力をエラーメッセージにリダイレクト。 exit 1 シェルを終了…

UNIXシェルスクリプト第9章 Part3

アルファベットの大文字を小文字にする関数 DownShift.sh echo "$@" | tr '[A-Z]' '[a-z]' $@は引数の部分を1個1個ダブルクォートで括った状態にする。 すべての引数がまったくそのままの形でechoコマンドに渡る。 trコマンドは文字を置換、削除する。

UNIXシェルスクリプト第9章 Part2

端末画面をクリアする関数 Clear.sh { clear; } 2>/dev/null || || はOR演算子なのでどれかのコマンドが成功すれば、その後の判定は行わない。 この中括弧は絶対に必要。もしclearコマンドがなくてエラーになった場合には、 このシェルがエラーを出してしま…

UNIXシェルスクリプト 第9章 Part1

リモートホストの状態をチェックする関数 CheckHostname.sh _HOST=${1:-`hostname`} 引数($1)があれば代入。なければhostnameコマンドの結果を代入。 `uname -s` OSの種類を判別するコマンド pingコマンド BSD系であれば-c1というオプションで1回だけ相手の…

サイト作った

ポイントはこれ サイト http://d0rikamon.com