単純なbashスクリプトがあります。私のバッシュバージョンはGNU bash, version 4.4.20(1)-release (x86_64-redhat-linux-gnu)
#!/bin/bash
func() {
nlvar="i'm not local variable"
local lvar="i'm local variable"
}
echo $nlvar
echo $lvar
私が使うなら
eval nlvar="i'm not local variable"
または
export nlvar="i'm not local variable"
まだ応答がありません
答え1
関数を呼び出さないと、グローバル(未定義)範囲を除いて範囲はありません。
#!/bin/bash
func() { :; } # define a function
echo $nlvar
echo $lvar
関数を定義しても実行されないため、文の実行時に両方のecho
変数は設定されません。