19 lines
441 B
Bash
19 lines
441 B
Bash
#!/bin/bash
|
|
if declare -p _global_pragma_once_sign >/dev/null 2>&1; then
|
|
return 0
|
|
fi
|
|
readonly _global_pragma_once_sign=true
|
|
declare -gA _global_loaded_scripts=()
|
|
pragma_once() {
|
|
local abs_path
|
|
abs_path="$(realpath "$1" 2>/dev/null)" || {
|
|
echo "错误: 文件 '$1' 不存在。" >&2
|
|
return 2
|
|
}
|
|
if [[ -n "${_global_loaded_scripts[$abs_path]+x}" ]]; then
|
|
return 1
|
|
fi
|
|
_global_loaded_scripts["$abs_path"]=1
|
|
return 0
|
|
}
|