サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
円安とは
anmino.hatenadiary.org
ファイルの内容を変数に読み込むには catコマンドの出力をコマンド置き換えする #!/bin/sh #file_to_var.sh msg=`cat file.out` echo "$msg"
メッセージの出力 echoコマンドやヒアドキュメントを使う。 問い合わせメッセージの出力と応えの取得 応答入力待ちの状態のときは、カーソルがメッセージの後ろにくる #!/usr/bin/sh echo -n "[y/n]? " ##-nオプションを使うと改行しない read val1 case "$val1" in y | yes ) frag=true ;; * ) frag=false ;; esac 1文字だけ取り出す sedやexprコマンドを使う #!/usr/bin/sh echo -n "[yes/no]? " read val1 val1=`expr "$val1" : "\(.\).*"` echo "$val1" ある条件下でのメッセージ出力 フラグの値によってメッセージを出す出さないかをifで文処理する。 何かメッセージを出すたびif文を書かなければならず面倒なので、
シェル変数で最初から組み込まれているものの中に特殊なものがあります。 位置パラメータはシェルスクリプトの引数を変数に代入したのもです。 変数名 値 $0 スクリプトの名前 $1-9 スクリプトに指定された引数の値(数値は引数の位置) $# スクリプトに指定された引数の数 $* スクリプトに指定された引数全部 "$*"の場合は "$1 $2..." $@ スクリプトに指定された引数全部 "$@"の場合は "$1" "$2" ... $? 直前のコマンドの終了ステータス $$ カレントシェルのプロセスID $! 直前のバックグランドジョブのプロセスID $- カレントシェルの動作オプション
変数の値がヌルかなどの条件により、代入する値や表示する内容を変えることができる。 ${var:-word} varに値が入っていないならwordを値として返す ${var:=word} varに値が入っていないならwordを代入する ${var:?word} varに値が入っていないならword出力する ${var:+word} varに値が入っていたらwordを値として返す :は省略可能で省略した場合、変数の値が未設定かヌルが代入されている場合にヌル文字が 入っている変数として扱う。未定義の変数の場合は値が入っていない変数として扱う。 $ var1=abc $ echo ${var1:-xyz} #値が入っていればそのまま表示 abc $ var1= $ echo ${var1:-xyz} #値が入っていなければ-以降を表示 xyz $ echo $var1 #値は入っていないまま $
クラス クラスの定義 <?php class クラス名{ //クラスの定義 } インスタンスの生成と使い方 <?php class Employee{ public function work(){ //メソッドの中身 } } ?> <?php //インスタンスの生成 $yamada = new Employee(); //メソッドの呼び出し $yamada->work(); アクセス修飾子 メソッドやプロパティがどこからアクセス可能かを表す修飾子 public クラスの外側から参照・呼び出しができる private 自分のクラスの内側からのみ参照・呼び出しができる protected 自分のクラスの内側または、自分のクラスを継承したクラスの内側からのみ参照・呼び出しができる プロパティ アクセス修飾子のあとに変数名を付けて定義する。 <?php class Employee{ publi
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /> <title>文字列表現の日付をタイムスタンプに変換したい</title> </head> <body> <?php // 一行分の表組みフォーマット $outputFormat = '<tr><td>%s</td><td>%s</td><td>%s</td></tr>'; echo '<table border="1" cellpadding="3">'; echo '<tr>';
配列の要素数は$#var_name[*]}で参照する #!/bin/sh #array_bash_count.sh #添え字が連続している場合 sample1[0]=zero sample1[1]=one sample1[2]=two echo ${#sample1[*]} #添え字が不連続の場合 sample2[1]=first sample2[7]=second sample2[10]=third echo ${#sample2[*]} $ ./array_bash_count.sh 3 3 #11にはならない
array=(word)と書くとカッコの中が単語に分割され それぞれの単語が配列arrayの要素として格納される IFSを改行のみのしておくと、1行が1要素の配列になる #!/bin/sh #linenum.sh if [ $# -ne 1 ]; then echo "Usage: linenum_bash.sh filename" exit 1 fi IFS=$'\n' #ファイルを配列に読み込む file=(`cat "$1"`) ln=0 for line in "${file[@]}"; do ln=`expr $ln + 1` printf '%3d %s\n' "$ln" "$line" done $ ./linenum_bash.sh arith.sh 1 #!/bin/sh 2 #arith.sh 3 x=5 4 y=9 5 z=13 6 a=`expr $x \* $y`
抜き出したい部分に相当する正規表現を、\(\)でグループ化する グループ内の正規表現にマッチした文字列が表示される #!/bin/sh #str_match_expr.sh text="<a target=WINDOW href=URL>ANCHOR</a>" expr "$text" : '.* \(target=[^ >]*\)' expr "$text" : '.* href=\([^ >]*\)' expr "$text" : '.*>\(.*\)<' $ ./str_match_expr.sh target=WINDOW URL ANCHOR
shには乱数を生成する機能がない bashのシェル変数RANOMは0-32767までの乱数を返す 乱数の範囲を1-Nまでにしたい場合は $ ( ( (RANDOM % n) + 1 ))のようにする #!/bin/sh #random_bash.sh for n in 1 2 3 4 5 6 7 8 9 10; do random=$(( (RANDOM % 10) + 1 )) echo -n "$random " done echo $ ./random_bash.sh 4 10 9 7 10 10 5 8 10 4
標準入力からデータを受け取って結果を標準出力に書き出す。 パターンに一致した文字列を別の文字に置き換えるときに利用されるのが多い。 sed [opstion] [command] [filename] オプション -e その後の文字列が編集用のコマンド -n 指示した行だけ出力する、pを一緒に使う コマンド s/正規表現/文字列/g 正規表現にマッチした部分を文字列で置き換え gがなければその行最初の文字列だけを対象にする。あれば全部を対称にする。 /は区切り文字だが、他の文字に変更することもできる $ sed -e "s/oldtext/newtext/g" #文字列の変換 $ sed -e "s/text//" #文字列の削除 $ sed -e "s/^text//" #行頭にtextがあった場合削除 $ sed -e "s/text\$//" #行末にtextがあった場合削除 $ s
インストールされているサービスの一覧を表示する 標準のランレベルは3なので3の値を確認する $ chkconfig --list NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off avahi-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off av
bashでは変数LINENOに現在実行中の行番号が代入されている #!/bin/sh #lineno.sh func(){ echo "lineno.sh($LINENO): func()" } echo "lineno.sh($LINENO): func()" func func $ ./lineno.sh lineno.sh(8): func() lineno.sh(5): func() lineno.sh(5): func()
このページを最初にブックマークしてみませんか?
『anmino.hatenadiary.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く