Shell 脚本避免多次重复 source
https://kodango.com/avoid-repeated-source-in-shell
${!_sourced_}是间接引用,这个执行没问题,source 会报错 bad substitution
_sourced_=__sourced_$$__ echo Flag variable $_sourced_=${!_sourced_} if [ -z ${!_sourced_} ]; then eval $_sourced_=1 echo It is the first time to source script else echo The script have been sourced fi
改为下面就可以正常source
_sourced_=__sourced_$$__ sourced=`eval echo '$'$_sourced_` echo Flag variable $_sourced_=${sourced} if [ -z ${sourced} ]; then eval $_sourced_=1 echo It is the first time to source script else echo The script have been sourced fi
或者
_sourced_=__sourced_$$__ eval sourced=\$$_sourced_ echo Flag variable $_sourced_=${sourced} if [ -z ${sourced} ]; then eval $_sourced_=1 echo It is the first time to source script else echo The script have been sourced fi _sourced_=__sourced_$$__ echo $_sourced_