本を読む

読書やコンピュータなどに関するメモ

Bash on Railsを作る(4) bashのlocal変数

 pure bashでBash on Railsを作るネタ企画です。今回はちょっとした小ネタ。

 bashでlocal宣言した変数って、Perlでlocal宣言した変数と同じく、動的スコープなんですね。

% cat local1.sh
#!/bin/bash

function print_a() {
    echo "$a"
}

function local_a() {
    local a='Good bye'
    print_a
}

a='Hello'
print_a
local_a
print_a
% bash local1.sh
Hello
Good bye
Hello
%

 bash自身が使う特殊な変数も、このとおり動的スコープ。

% cat local2.sh
#!/bin/bash

function print_1st() {
    set $1
    echo $1
}

function local_1st() {
    local IFS='/'
    print_1st "$1"
}

a='a/b c'
local_1st "$a"
print_1st "$a"
% bash local2.sh
a
a/b
%

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/347-b457abee

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad