正しいパラメータを受け取らない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" ]];