More Related Content
PDF
PDF
PDF
PDF
Introduction to Initramfs - Initramfs-tools and Dracut ODP
Sourcecode Reading Workshop2010 ODP
PDF
PDF
What's hot
KEY
KEY
PDF
2日間Fabricを触った俺が
色々解説してみる PDF
PDF
PPTX
PDF
PPTX
PDF
PDF
PDF
PDF
PDF
PPTX
PDF
PDF
PDF
KEY
PDF
PPTX
Viewers also liked
PDF
PPTX
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」 PDF
PDF
PDF
awk v.s. bashどっちが強い?@OSC2011Tokyo PPTX
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」 PDF
PDF
日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall PDF
PDF
PDF
T4t - tools for teams - 第1回 発表スライド PPTX
20150717 gisca 自治体によるopenstreetmapの活用について ODP
PDF
【議事録】スキルアップ勉強会(6月度) h23.07.10 PDF
PDF
第31回WebSig会議【セッション2】 タブレットが与える影響について考える PDF
ODP
会津若松市 情報化の取り組みと防災分野へのオープンデータ活用 ODP
PDF
Similar to 仕事で使えるシェルスクリプト
PPTX
Powershell勉強会 v3 (もっと新しいバージョンがあります) PPTX
Powershell勉強会 v4 (もっと新しいバージョンがあります。) PPTX
Powershell勉強会 v5 (こちらが最新です。) PPTX
PPTX
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります) PPTX
Powershell勉強会 v2 (もっと新しいバージョンがあります) PDF
PDF
Windows PowerShell 2.0 の基礎知識 PDF
PDF
IT Pro のための PowerShell スクリプティング PDF
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会 PDF
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash PPTX
PPTX
PDF
ODP
楽しい怪しいシェルスクリプト - 第4回つくらぐ勉強会 PDF
2017-12-04 Linuxの基本構造とBashでの扱い方 PDF
PDF
MAN OF BASH #ssmjp 2013.09.25 PDF
OSC2012 Tokyo Spring, USP lab. presentation 仕事で使えるシェルスクリプト
- 1.
- 2.
- 3.
- 4.
仕事で使えるシェルスクリプト 4
なぜなぜ POSIXPOSIXかか
● 元々は Bourne Shell のみだったので互換性は問題なし
● シェルスクリプトは様々な環境で動作した
●
csh 、 tcsh 、 ksh 、 bash 、 zsh などの登場により機能は増加し
たが互換性は減少した
● ソフトウェア製品を様々なベンダーの数ある unix システムで
動作させるために互換性を意識する必要がある
- 5.
- 6.
- 7.
- 8.
仕事で使えるシェルスクリプト 8
POSIXPOSIX を気にしないを気にしない
●
OS固有の処理(起動スクリプトなど)
– redhat 系
● パラメタは /etc/sysconfig 以下にファイルを設置
● 起動スクリプトは /etc/rc.d/init.d 以下にファイルを設置
● 起動制御は chkconfig で指定
– FreeBSD
● パラメタ・起動制御は /etc/rc.conf に指定
● 起動スクリプトは /usr/local/etc/rc.d 以下にファイルを設置
- 9.
- 10.
- 11.
- 12.
仕事で使えるシェルスクリプト 12
シェル変数シェル変数 -e-e
●スクリプト実行時に制御文以外でエラーが発生
した場合に スクリプトを終了させる。
$ cat foo.sh
#!/bin/sh
set -e
files=`la ${tmpdir}`
echo "FILES: ${files}"
$ sh foo.sh
foo.sh: line 3: la: command not found
- 13.
仕事で使えるシェルスクリプト 13
シェル変数シェル変数 -x-x
●コマンドが実行される前にコマンドと変数の展
開結果を stderr に出力する。
$ cat foo.sh
#!/bin/sh
set -x
files=`ls ${tmpdir}`
echo "FILES: ${files}"
$ sh foo.sh
++ ls
+ files='bar
baz 以下略
- 14.
仕事で使えるシェルスクリプト 14
シェル変数シェル変数 -v-v
●シェルの入力行を stderr に出力する。
$ cat foo.sh
#!/bin/sh
set -v
files=`ls ${tmpdir}`
echo "FILES: ${files}"
$ sh foo.sh
files=`ls`
ls
echo "FILES: ${files}" 以下略
- 15.
仕事で使えるシェルスクリプト 15
シェル変数シェル変数 -n-n
●コマンドの実行を抑止する。文法チェックや前
述の -v と組み合わせて使用すると便利。
$ cat foo.sh
#!/bin/sh
set -vn
files=`ls ${tmpdir}`
echo "FILES: ${files}"
$ sh foo.sh
files=`ls`
echo "FILES: ${files}"
- 16.
仕事で使えるシェルスクリプト 16
シェル変数シェル変数 -u-u
●シェル変数を展開した時に値が設定されていな
い場合はエラーとする。
$ cat foo.sh
#!/bin/sh
set -u
tmpdir="/tmp"
rm -r ${tnpdir}/*
$ sh foo.sh
foo.sh: line 4: tnpdir: unbound variable
- 17.
仕事で使えるシェルスクリプト 17
変数展開変数展開
● シェルによる変数展開を活用しよう
–${parameter:-word} デフォルト値への置換
– ${parameter:=word} デフォルト値の代入
– ${parameter:?[word]} 値の検査とエラー
– ${parameter:+word} 代替値の使用
– ${#parameter} 文字列長の取得
– ${parameter%word} 最短後置パターンの削除
– ${parameter%%word} 最長後置パターンの削除
– ${parameter#word} 最短前置パターンの削除
– ${parameter##word} 最長前置パターンの削除
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
仕事で使えるシェルスクリプト 27
traptrap の活用の活用
●
trap(1) で 0 を指定する
– スクリプトが正常終了した時にも指定した処理が実
行されるので、プログラム中で作成した一時ファイ
ルの削除などにはもってこい。
tmpdir="${TMP:-/tmp}/`basename ${0}`.$$"
mkdir -p "${tmpdir}"
trap 'rm -r "${tmpdir}"' 0
- 28.
- 29.
- 30.
仕事で使えるシェルスクリプト 30
setset の活用の活用
●スペース区切りのデータ解析は set を活用
date="`date '+%Y %m %d'`"
year="`echo ${date} | awk '{ print $1 }'`"
month="`echo ${date} | awk '{ print $2 }'`"
day="`echo ${date} | awk '{ print $3 }'`"
↓
set -- `date '+%Y %m %d'`
year="${1}"
month="${2}"
day="${3}"
- 31.
仕事で使えるシェルスクリプト 31
正規表現正規表現
● 正規表現の種類
–POSIX 1003.2 で定義されている
– 拡張正規表現 : egrep などモダンな実装
– 基本正規表現 : ed など旧来の実装
●
| 、 + 、 ? は存在しない
●
{ 、 } 、 ( 、 ) はそれぞれ { 、 } 、 ( 、 )
●
^ 、 $ は正規表現の先頭 / 末尾意外では普通の文字
– + 、 ? は代替の表現があるが | の代替は面倒
● シェルの glob とは異なるので注意
- 32.