🖥
bash / sh | function からの脱出 ( 関数は変数を閉じ込めない )
検証コード
man='CATCH ME' # => 1. function の外で変数を定義しても
function jail() {
echo $man # => 1. 変数は侵入する
echo $1
hope='CAN' # => 2. functionの中で変数を定義しても
}
jail 'IF YOU'
echo $hope # => 2. 変数は脱出する
echo $1 # => 3. こいつは脱走できない
結論
この監獄は脆い。
変数閉じ込める方法
local を宣言すること。
hope='NOT FOUND'
function jail() {
local hope='FOUND'
}
echo $hope # => NOT FOUND
環境
- sh 3.2
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2016-06-17
Discussion