ナビゲーション
FrontPage
FreeBSD
Linux
Citrix XenServer
VMware ESXi
Unixコマンド
MySQL
PostgreSQL
Windows
CMS/CRM
クラウド
用語
PHPスクリプト
Bashシェルスクリプト
Rubyスクリプト
開発日記
検索
ツールボックス
新しいページの作成
バックアップの表示
外部のリンク元
最近更新したページ
全ページ
ヘルプ
凍結
アップロード
ページ名の変更
最新の40件
2016-08-17
Linux/NagiosQL
Linux/CentOSチューニング
2016-02-23
Linux/ソフトウェアRAID復旧手順
2016-02-18
FreeBSD/DHCP
FreeBSD/squid
2016-02-15
Unixコマンド/file
2016-02-05
FreeBSD/DynaBook
FreeBSD/Linux compatibility
2016-01-21
PHPスクリプト/PEAR DBインストールできない
PHPスクリプト/PEAR DB
2016-01-20
PHP/フレームワーク/Zend Framework
PHP/フレームワーク
FreeBSD/Postfix+amavisd+clamav
2016-01-15
FreeBSD/sl
2015-12-04
Unixコマンド/dig
Unixコマンド/nslookup
Unixコマンド/traceroute
Linux/rsync
FreeBSD/rsync
Unixコマンド/vipw
2015-11-25
Linux/Postfix+MySQL+Postfix AdminによるバーチャルSMTPサーバの構築
Linux/Postfix + postgrey
2015-11-24
Linux/Postfix + amavisd + clamav
2015-05-25
Unixコマンド/ifconfig
2015-05-23
Unixコマンド/netstat
Unixコマンド/route
Unixコマンド/lsof
Unixコマンド/disown
Unixコマンド/time
Unixコマンド/crontab
2015-05-22
Unixコマンド/nohup
Unixコマンド/fgとbg
Unixコマンド/nice
Unixコマンド/kill
Unixコマンド/jobs
Unixコマンド/restor
Unixコマンド/dump
Unixコマンド/uncompress
Unixコマンド/compress
Unixコマンド/zcat
total:
6551
today:
1
yesterday:
0
now:
1
本文
ノート
?
編集
差分
一覧
Bashシェルスクリプト/変数 の編集
*''変数'' [#nec07d1a] 変数とは、いろいろな異なった値を表現できる入れ物の事です。~ たとえば、Xという変数があったとき、そのXは単なる入れ物でしかなく、~ なかには「りんご」「120」「腹減った」などなんでも詰め込む事ができます。~ なかに入っているものが、その変数の実態(値)です。~ 変数の作成は=の左に変数名を記述するだけでできます。~ 作成と同時に値を代入したい時は=の右にその値を指定します。~ 変数名として利用できる文字は英数字と_ですが、数字を変数名の先頭にすることはできません。~ この場合 X="りんご" X=120 といった感じです。 **''変数を作成する。'' [#h2eb1a83] シェルスクリプト内ではどこでも変数を作成できます。 VAR= こうするだけで、VARという変数が作成できます。~ 変数名は自由ですが、中に入れる値がどんなものなのかによって分かり易い名前にするのが普通です。~ 合計の値を入れる変数なら SUM= などとするのが良いと思います。~ ***変数名に利用できる文字 [#q8fe8bf1] 変数名は基本的に自由に付けられますが、変数名にも多少のルールがあります。~ &COLOR(#FF0000){空白(スペースやタブ)、'(シングルクォテーション)や、.(ドット),-(ハイフン)といった特殊文字は利用できないのです。};~ 変数名の例 |COLOR(blue):変数名として認識|COLOR(red):変数名として認識されない|h |HENSU|001HENSU| |HENSU_01|HENSU-01| |_88Variable|Variable.88| ***変数に値を代入する。 [#p5a04e5f] 変数へ代入する値は文字列です。~ 数値を代入しても全て文字列として処理されます。~ 値の代入には=と使いますが、その両脇に空白を入れてはいけません。~ 空白や特殊文字列を含む文字列を代入したい場合はクォーテーションやエスケープ文字を使います。~ 代入例: |COLOR(blue):変数VARに代入|COLOR(red):代入された文字列|h |VAR=abc|abc| |VAR="I am hungry."|I am hungry.| |VAR='I said "I'\''m hungry\!'|I said "I'm hungry\!| |VAR=12345|12345| |VAR="123 + 456"|123 + 456| |VAR= abc|COLOR(red):エラーとなり値は代入されない。| 変数の値を、さらに別の変数に代入することも可能です。~ 変数VAR1に値abc~ 変数VAR2に値xyz |COLOR(blue):変数VAR_Aに代入|COLOR(red):変数VAR_Aに代入された文字列|h |VAR_A=$VAR1$VAR2|abcxyz| |VAR_A=123$VAR1|123abc| |VAR_A=${VAR2}123|xyz123| |VAR_A=$VAR2abc|COLOR(red):VAR2abcという変数を探すのでエラーとなる。| **''変数の値を参照する。'' [#pe408ec4] 変数に代入された値は、変数名の前に$(ダラー)を付ける事で参照できます。~ どこまでが変数名なのか明確にする場合は${}で変数名を囲みます。~ ■echoコマンドで値を参照する。 $ VAR1=abc $ VAR2="123 xyz" $ echo $VAR1 $VAR2 abc 123 xyz ■スペースで区切らなくても参照できます。 $ echo $VAR1$VAR2 abc123 xyz ■NGの例 $ echo $VAR1abc この場合だと、変数VAR1abcの中身を参照する為、何も出力されません。~ ■表示できる場合 $ echo ${VAR1}abc abcabc これだと変数VAR1とabcを表示する事ができます。 ■スペースの前までが変数名 $ echo $VAR1 abc abc abc ■.(ドット)の前までが変数名 $ echo $VAR1.c abc.c ■/の前までが変数名 $ echo $VAR1/abc abc/abc **パラメータ変数 [#x19f3c0b] スクリプトを作成するときにパラメータを取得できないと困ることがある.パラメータは以下の変数で表される. $0 スクリプトの名前 $# 渡されたパラメータの数 $$ スクリプトのプロセスID $1,$2,... スクリプトのパラメータ $* 全パラメータを表す一つの変数.各パラメータは$IFSで区切られる.ダブルクォートしないと,BASHに$0,$1,$2,....と展開される気がする(*は全ての文字列に一致する). $@ 全パラメータを表す一つの変数.各パラメータは$IFSに関係なく(おそらくスペースで)区切られる.
タイムスタンプを変更しない
*''変数'' [#nec07d1a] 変数とは、いろいろな異なった値を表現できる入れ物の事です。~ たとえば、Xという変数があったとき、そのXは単なる入れ物でしかなく、~ なかには「りんご」「120」「腹減った」などなんでも詰め込む事ができます。~ なかに入っているものが、その変数の実態(値)です。~ 変数の作成は=の左に変数名を記述するだけでできます。~ 作成と同時に値を代入したい時は=の右にその値を指定します。~ 変数名として利用できる文字は英数字と_ですが、数字を変数名の先頭にすることはできません。~ この場合 X="りんご" X=120 といった感じです。 **''変数を作成する。'' [#h2eb1a83] シェルスクリプト内ではどこでも変数を作成できます。 VAR= こうするだけで、VARという変数が作成できます。~ 変数名は自由ですが、中に入れる値がどんなものなのかによって分かり易い名前にするのが普通です。~ 合計の値を入れる変数なら SUM= などとするのが良いと思います。~ ***変数名に利用できる文字 [#q8fe8bf1] 変数名は基本的に自由に付けられますが、変数名にも多少のルールがあります。~ &COLOR(#FF0000){空白(スペースやタブ)、'(シングルクォテーション)や、.(ドット),-(ハイフン)といった特殊文字は利用できないのです。};~ 変数名の例 |COLOR(blue):変数名として認識|COLOR(red):変数名として認識されない|h |HENSU|001HENSU| |HENSU_01|HENSU-01| |_88Variable|Variable.88| ***変数に値を代入する。 [#p5a04e5f] 変数へ代入する値は文字列です。~ 数値を代入しても全て文字列として処理されます。~ 値の代入には=と使いますが、その両脇に空白を入れてはいけません。~ 空白や特殊文字列を含む文字列を代入したい場合はクォーテーションやエスケープ文字を使います。~ 代入例: |COLOR(blue):変数VARに代入|COLOR(red):代入された文字列|h |VAR=abc|abc| |VAR="I am hungry."|I am hungry.| |VAR='I said "I'\''m hungry\!'|I said "I'm hungry\!| |VAR=12345|12345| |VAR="123 + 456"|123 + 456| |VAR= abc|COLOR(red):エラーとなり値は代入されない。| 変数の値を、さらに別の変数に代入することも可能です。~ 変数VAR1に値abc~ 変数VAR2に値xyz |COLOR(blue):変数VAR_Aに代入|COLOR(red):変数VAR_Aに代入された文字列|h |VAR_A=$VAR1$VAR2|abcxyz| |VAR_A=123$VAR1|123abc| |VAR_A=${VAR2}123|xyz123| |VAR_A=$VAR2abc|COLOR(red):VAR2abcという変数を探すのでエラーとなる。| **''変数の値を参照する。'' [#pe408ec4] 変数に代入された値は、変数名の前に$(ダラー)を付ける事で参照できます。~ どこまでが変数名なのか明確にする場合は${}で変数名を囲みます。~ ■echoコマンドで値を参照する。 $ VAR1=abc $ VAR2="123 xyz" $ echo $VAR1 $VAR2 abc 123 xyz ■スペースで区切らなくても参照できます。 $ echo $VAR1$VAR2 abc123 xyz ■NGの例 $ echo $VAR1abc この場合だと、変数VAR1abcの中身を参照する為、何も出力されません。~ ■表示できる場合 $ echo ${VAR1}abc abcabc これだと変数VAR1とabcを表示する事ができます。 ■スペースの前までが変数名 $ echo $VAR1 abc abc abc ■.(ドット)の前までが変数名 $ echo $VAR1.c abc.c ■/の前までが変数名 $ echo $VAR1/abc abc/abc **パラメータ変数 [#x19f3c0b] スクリプトを作成するときにパラメータを取得できないと困ることがある.パラメータは以下の変数で表される. $0 スクリプトの名前 $# 渡されたパラメータの数 $$ スクリプトのプロセスID $1,$2,... スクリプトのパラメータ $* 全パラメータを表す一つの変数.各パラメータは$IFSで区切られる.ダブルクォートしないと,BASHに$0,$1,$2,....と展開される気がする(*は全ての文字列に一致する). $@ 全パラメータを表す一つの変数.各パラメータは$IFSに関係なく(おそらくスペースで)区切られる.
テキスト整形のルールを表示する
ログインまたはアカウント作成