Home > Linux | bash > シェルスクリプト bash 基礎 覚え方 

シェルスクリプト bash 基礎 覚え方 

  • 2012-01-14 (土)

書き方

とりあえず
#!/bin/bash

あとはコマンドを連ねる。
いつも良くやる作業があればスクリプトにしてしまおう。

実行のさせ仕方

vim hoge.sh
などでスクリプト作成したとしまして

 hoge.sh というスクリプトが現在ディレクトリにあるとします
sh ./hoge.sh で実行可能

chmod u+x hoge.sh して実行属性をつけておくと
./hoge.sh で実行可能

hoge.sh へ PATH が通っていれば

hoge.sh で実行可能

引数

実行時にファイルに引数を与えると

$1 $2 で拾える

if

PHPで

if ( cond ) {
command ;
}elseif( cond2 ){
command2 ;
else {
command3 ;
}

ならbashで

if cond ; then
command
elif cond2 ; then
command2
else
command3
fi

switch

PHPで

swtich ($cond){
case ‘a’ :
command_a ;
case ‘b’ :
command_b ;
case ‘c’ :
command_c ;
}

ならbashで

case $cond in
“a”)
command_a
“b”)
command_b
“c”)
command_c
esac

for do done

for word in a b c d ; do
echo $word
done

このデリミタがいまいち把握しきれない。
1)
上記はスペースごと

2)
*.jpg
存在するファイルごと

3)
$*
で引数ごと
PHPのfunc_get_args()みたい

今知っているのはとりあえず上記3パターン。

while do done

while [$i -lt 10 ]; do
echo $i
i=’expr $i + 1′
done

上記は単純だが

path=$PATH:
while [ $path ]
do
echo ${path%%:*}
path=${path#*:}
done

で実行例が

$ echo $PATH
/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:
/usr/X11R6/bin:/home/tom-a/bin:/usr/local/pgsql/bin:/usr/interbase/bin
$ ./split.sh
/usr/local/bin
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/sbin
/usr/X11R6/bin
/home/tom-a/bin
/usr/local/pgsql/bin
/usr/interbase/bin

だという。
これは変数のパターンマッチで実現。

http://www.atmarkit.co.jp/flinux/rensai/theory08/theory08a.html

参考サイト

http://www.atmarkit.co.jp/flinux/rensai/theory08/theory08a.html
http://www.atmarkit.co.jp/flinux/rensai/theory08/theory08b.html
ここ2つを熟読したら

http://www.atmarkit.co.jp/flinux/index/indexfiles/shellsindex.html
ここを通読。

上記で一人立ちできると思います。

Comments:0

Comment Form
Remember personal info

Trackback+Pingback:0

TrackBack URL for this entry
http://reoto.com/archives/355/trackback/
Listed below are links to weblogs that reference
シェルスクリプト bash 基礎 覚え方  from ぼんずーず

Home > Linux | bash > シェルスクリプト bash 基礎 覚え方 

タグクラウド
911 98 Acl add on ADSL ajax android apache api apxs bake bash bind borland BSE c++ cakephp centOS centOS5 centos6 chrome chroot clamav combobox configure cpan css css3 ctp curl C言語 database db dns dojo dom dos dovecot dreamweaver ECCUBE eclipse EM Excel exec php favicon firefox firewall git html http httpd ids IE8 iptables ipマスカレード java javascript jquery json lan lightbox linux Lithium mailserver make mbr model mongoDB movabletype mozc mysql nec nic oscommerce password pbr pbs pci pcre PDF pear perl php php4.3.9 php5.2 php5.3 phpexec phpのエラーコード plugin pop3 postfix pppoe Python ruby Ruby on Rails sftp simpletest SMAP Smarty smtp snort SPAM sql sqlite ssh sugarsync svn Synergy TCP/IP toitoiseSVN tripwire ubuntu uml validation vim vimperator VMwarePlayer vnc vps web webmin web開発 windows windowsXP wine Word wordpress xampp xml zen cart zen coding  androidアプリ えひめAI くしゃみ さくらvps ひかり ひかり接続 アキヒト アンチウィルス イカ インデックス エコ エラー オリンピック カスタマイズ カスタムフィールド カタカナ キーワードEYE シェルスクリプト シュレッダー ジーオーグループ スクリプト セキュリティ センター直前 ソルトレイク タコ ダイアルアップ ダウンタウン ツール テレビ テレホーダイ テロ デバッグ デュアルブート データサルベージ ネットショップ ネットワーク ハイライト バイク バックアップ バッファオーバーフロー バージョン切り替え バージョン管理 ファイル共有 フリーズ ブックオフ プラグイン プリンタ プログラミング プーチン マイケルジャクソン マコーレ・カルキン マルウェア メモ メール リキッドレイアウト リサイクル リビルド リポジトリ レイアウト レンタルサーバー 不満 事故 人生 仮想化 再生紙 別れ 加圧式ボールペン 参考サイト 受験 哲学 変数 夏目漱石 夢十夜 家族 島谷ひとみ 怠惰 怪奇 感謝 技術メモ 文字 文字コード 料理 楽天API 正月 歯痛 焼き豚 牛肉 理科年表 環境問題 生きる 画像 示談金 視覚 言葉 透過 開発環境 降水量 青画面 風邪 飲みすぎ google
検索
Feeds
Ads

Return to page top