シェルスクリプトメモ


シェルスクリプトメモ

変数

$1, $2, ...  引数自体を参照
$#           引数の数
$*           すべての引数を一度に参照
$0           実行しているスクリプトのパス
$?           直前のコマンドの終了ステータス

条件式

文字列比較演算子

= 	両辺の文字列が一致したとき真
!= 	両辺の文字列が一致しないとき真
-n 変数 	変数がnullでないときに真
-z 変数 	変数がnullのときに真

ファイル属性演算子

-d file 	fileが存在してディレクトリのとき真
-e file 	fileが存在するとき真
-f file 	ファイルが存在し普通のファイルのとき真

論理演算子

-a 	かつ
-o 	または

数値評価演算子

-lt 	より小さい
-le 	以上
-eq 	等しい
-ge 	以上
-gt 	より大きい
-ne 	等しくない

パスの取得コマンド

basename   パスからファイル名だけを抜き出す。
dirname    パスからディレクトリ名までを抜き出す。
realpath   相対パスを絶対パスに展開する。

例:実行しているシェルの絶対パスを取得  ⇒ > dirname $0

変数に対するパターンマッチ

* ${変数#パターン}  最初の部分とパターンがマッチしたら、
                    最も短く一致する部分を取り除いた残りの部分を返す。
* ${変数##パターン} 最初の部分とパターンがマッチしたら、
                    最も長く一致する部分を取り除いた残りの部分を返す。
* ${変数%パターン}  最後の部分とパターンがマッチしたら、
                    最も短く一致する部分を取り除いた残りの部分を返す。
* ${変数%%パターン} 最後の部分とパターンがマッチしたら、
                    最も長く一致する部分を取り除いた残りの部分を返す。
例:testpath=/home/sekino/Linux/how.to.linux の場合
$ echo ${testpath##/*/}
how.to.linux
$ echo ${testpath#/*/}
sekino/Linux/how.to.linux
$ echo ${testpath%%.*}
/home/sekino/Linux/how
$ echo ${testpath%.*}
/home/sekino/Linux/how.to
例:ファイルの拡張子を置き換える
#!/bin/sh
file=scan01.jpg
echo ${file}
echo ${file%jpg}
echo ${file%jpg}png

Menu

Linux

サーバ構築

Windows

Java

Program

 

最新の20件

2008-04-02 2008-03-11 2008-01-28 2008-01-21 2007-11-27 2007-09-19 2007-06-07 2007-04-11 2007-04-06 2007-03-22 2006-12-20 2006-12-05 2006-12-04 2006-10-27 2006-09-22 2006-07-03 2006-05-16
  • シェルスクリプトメモ