最終更新日: 2016-06-26 日 01:24
ホーム | 文書トップ | 目次

シェルスクリプト

Table of Contents

shell.gif

引数

引数を参照するシェル変数は9つまで使うことができる. ( $1, $2, ... $9 )

変数の代入

※"="との間にスペースを入れるとNG

i=1
echo $i

test="abc"
test2=$test
echo $test

if文

if [ "$1" = 2 ]; then
    echo test;
fi

while文

while read LINE
  do
  echo $LINE
done

文字列操作

while read LINE
  do
  echo ${LINE:2} # offset=2の位置から 変数LINE の終りまでのサブ文字列が返される.
done

変数(数値)のインクリメント

n=`expr $n + 1`

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

${変数#パターン}
変数の内容について、最初の部分とパターンがマッチしたら、最も短く一致する部分を取り除いた残りの部分を返す。

${変数##パターン}
変数の内容について、最初の部分とパターンがマッチしたら、最も長く一致する部分を取り除いた残りの部分を返す。

${変数%パターン}
変数の内容について、最後の部分とパターンがマッチしたら、最も短く一致する部分を取り除いた残りの部分を返す。

${変数%%パターン}
変数の内容について、最後の部分とパターンがマッチしたら、最も長く一致する部分を取り除いた残りの部分を返す。

特殊な変数

$# 引数の数 
$0 コマンド名 
$1, $2, ... $9 第1,第2,…第9引数 
$* 引数列 
$@ 引数列 
$? 最後に実行したコマンドの戻り値 
$$ 現在のシェルのプロセス番号 
$! 最後に実行したバックグラウンドコマンドのプロセス番号 
$- シェルフラグの現在の設定状態(起動時や、set コマンドで得られたオプション) 

dateコマンド

日付でファイル名を作成する

例えば今日が 2005/05/23 だったら、

$ touch test`date '+%y%m%d'`

で
test050523.txt
というファイルが作成される

$ touch test`date --date '1 day' '+%y%m%d'`
で
test050524.txt
というファイルが作成される

$ touch test`date --date '1 day ago' '+%y%m%d'`
で
test050522.txt
というファイルが作成される

リンク

ホーム | 文書トップ | 目次
Created by Emacs 27.1 (Org mode 9.3)