나는 파일 실행Bash : HEREDOC에서 변수를 읽지 않는 이유는 무엇입니까?
#! /bin/bash
. ./lib/utils
_name="microapplication-launcher"
_version="0.1"
_shortname="launcher"
DEFAULTS=$(cat <<'EOD'
# openning-prefs : terminal browser folder
launcher-openning-prefs=TRUE|FALSE|TRUE|
EOD
)
CONFIG="$(makeconfig)"
그리고 파일 ./lib/utils
__name="microapplication"
#export __name
__version="0.1"
#export __version
CONFIGDIR=~/.config/$__name
CONFIG=""
APPPATH="$HOME/Site/local"
export APPPATH
function makeconfig {
# global config
CONFIG="$CONFIGDIR/$__name.conf";
[ ! -d $CONFIGDIR ] && mkdir $CONFIGDIR
[ ! -f $CONFIG ] && cat <<"EOD" > $CONFIG
# $__name $__version
app-path=$APPPATH
EOD
}
들이받은 때, 생산이 ~ /의 .config/microapplication/microapplication.conf
# $__name $__version
app-path=$APPPATH
이 기능은 실행 프로그램에서 실행됩니다. 파일 이름을 만들기 위해 __name (밑줄 2 개)은 makeconfig으로 잘 읽었지만 더 이상 heredoc에서 주석을 읽지 않습니다. 밑줄을 제거하거나 제거하지 마십시오. 변수를 내보내거나 가져 오지 않아도 효과가없는 것처럼 보입니다.
중복 가능성 (http://stackoverflow.com/questions/4937792/using-variables-inside-a -bash-heredoc) – Thilo