- 追加された行はこの色です。
- 削除された行はこの色です。
*シェルプログラミング [#la473fd9]
シェルで悩んだところのメモ書きです。
***シェルの変数について [#p62c25da]
変数の意味は以下の通り
|変数|意味|
|$$|シェル自身のPID(プロセスID)|
|$!|シェルが最後に実行したバックグラウンドプロセスのPID|
|$?|最後に実行したコマンドの終了コード(戻り値)|
|$-|setコマンドを使って設定したフラグの一覧|
|$*|全引数リスト。"$*"のように「"」で囲んだ場合、"$1 $2 … $n" と全引数を一つにくっついた形で展開される。|
|$@|全引数リスト。"$@"のように「"」で囲んだ場合、"$1" "$2" … "$n" とそれぞれの引数を個別にダブルクォートで囲んで展開される。|
|$#|シェルに与えられた引数の個数|
|$0 |シェル自身のファイル名|
|$1~$n|シェルに与えられた引数の値。$1は第1引数、$2は第2引数…となる。|
***リダイレクトについて [#ld20af95]
標準出力のリダイレクトは以下の通り
コマンド > aaa.txt
標準出力+エラー出力のリダイレクトは以下の通り
コマンド >& aaa.txt
へー勉強になった
ちなみに、追記の場合は、「>」→「>>」にすればいいよ
***awk [#y1919cd4]
awkはawkで何ページも書けちゃう内容なんだろうけど、とりあえず今日使ったやつだけ。
こんなテキストファイルがあります。このテキストファイルの名前が「Address.txt」だとします。&br;
まあ、アドレス帳だと思ってください。
firstName lastName address phoneNo
Shogo Miyazaki Tokyo 090-xxxx-yyyy
Tatsuya Akasaka Osaka 080-aaaa-bbbb
Mayuko Kobayashi Osaka 080-aaaa-bbbb
Hana Takahashi Nagoya 070-cccc-dddd
Tarou Omori Nagoya 070-cccc-dddd
・・・・
このアドレスの、苗字だけほしい場合、こんな感じにawkです。
[root@server tmp]# awk '{print $2}' Address.txt
lastName
Miyazaki
Akasaka
Kobayashi
Takahashi
Omori
へー2列目だけ取れた。
じゃあ、このアドレス帳のなかで、Address(住所)が「Osaka」の人のlastName(苗字)がほしいとき、こんな感じでawkします。