올바른 매개변수를 수신하지 못하는 korn util 스크립트가 있습니다. 이유는 모르겠습니다. 저는 korn을 처음 사용하는데 이 문제를 온라인으로 검색해도 도움이 되지 않았습니다.
dir: ksh test_k.ksh를 호출하여 이 방법으로 호출 스크립트를 실행합니다.
test_k.ksh:
#!/bin/ksh
# Invoke the initialization script
[[ ! -r /home/mcleary/k_test/bin/init.ksh ]] \
&& print -u2 "$0: /home/mcleary/k_test/bin/init.ksh not found" && exit
. /home/mcleary/k_test/bin/init.ksh
#I had to add -fDEV_OVR below for executing in dev env, but this is source of params and I see the resemblance to the garbage here
m_F -fDEV_OVR -t'echo "No skipping"' MMMM <<!
cd ${REMOTE_DIR}
! #command called here, calls utils.michele.ksh
init.ksh looks like this (moved it to my dir to add #!/bin/ksh at the top):
초기화.ksh:
#!/bin/ksh
# Set up environment
umask 002
# Check $M_HOME
if [[ -z "$M_HOME" ]]; then
print "\$M_HOME is not set"
echo "setting M_HOME different way then echo"
M_HOME="/appl/"
echo $M_HOME
echo "export and echo again next"
export M_HOME="/appl/"
echo $M_HOME
fi
echo "m_home:" $M_HOME
# Read $M_HOME/etc/m.env
if [[ -r ${M_HOME}/etc/m.env ]]; then
. ${M_HOME}/etc/m.env
echo "first case home etc m.env found"
...
# Read $M_HOME/bin/utils.ksh
if [[ -r /home/mcleary/k_test/bin/utils.michele.ksh ]]; then
. /home/mcleary/k_test/bin/utils.michele.ksh
echo "michele utils found" #it prints this
else
if [[ -f /home/mcleary/k_test/bin/utils.michele.ksh ]]; then
print "\/home/mcleary/k_test/bin/utils.michele.ksh not readable, exiting"
echo "michele utils not readable"
else
print "\/home/mcleary/k_test/bin/utils.michele.ksh not found, exiting"
echo "michele utils not found"
fi
exit
fi
따라서 init 파일에서 일어나는 일은 M_HOME이 무엇인지 모르기 때문에 내가 제공하는 대로 기본값이 됩니다. 그런 다음 $M_HOME/etc/m.env를 찾았지만 아래와 같이 쓰레기를 인쇄합니다. 그렇지 않으면 오류 메시지가 없습니다. 매개변수가 작동하지 않는 이유는 무엇입니까?
env 파일 상단에 #!/bin/ksh는 없지만 내보내기 목록이 있습니다. m.env:
export GROOVY_dir=${M_HOME}/dsa5/oraclev6/groovy
etc
utils.michele.ksh:
#!/bin/ksh #I added this, former version did not have it
...
function m_F {
when getopts f:t: opt; do
case $opt in
f) ARGVAL="OPTARG"; shift;;
t) DEVCMD="OPTARG"; shift;;
?) ;;
esac
done
M_SITE_NAME="$1"
echo "M_HOME:" $M_HOME #looks good
echo "M_SITE_NAME:" $M_SITE_NAME #problem..gives garbage: -techo "No skipping"
# Set site, ID
M_F_SITE=$(eval echo \$${M_SITE_NAME}_FSITE) #gets from env var, but not filling
[[ -z "$M_F_SITE" ]] && m_Log "m_F: \$M_F_SITE not found" && m_exit
echo "M_F_SITE here: $M_F_SITE" #problem..gives garbage...hBtecho No skipping_FSITE
... elif [[ "ARGVAL" == "DEV_OVR" ]];