KSH : я не могу получить значение параметров из другого скрипта

#bash #shell #unix #ksh

#bash #оболочка #unix #ksh

Вопрос:

я новичок в unix и shell script, поэтому проблема в части WHILE CASE, я запускаю скрипт примерно так

  . SCRIPT1 123
  

вот script1

 while [ $# -gt 0 ]
do 
ParamLine="$ParamLine $1"
shift
done

$DIR/SCRIPT2$ParamLine  
if [ $? -ne 0 ]
then
   exit 1
fi
  

и вот SCRIPT2, который будет перехватывать параметр из SCRIPT1

 from_prg=genresourceshortage
to_prg=genresourceshortage
batchdate=$BOM_BATCH_DATE


echo "THIS IS THE FIRST PARAMETER "$1


while [ $# -gt 0 ]
do
case $1 in
     from=*) from_prg=`echo $1 | cut -c6-`    ;;
       to=*) to_prg=`echo $1 | cut -c4-`      ;;
       oc=*) to_prg=`echo $1 | cut -c4-`      ;;
        -d*) shift
             batchdate=$1                     ;;
          *) echo "<<<<< Invalid restart parameter >>>>>"
             echo "<<<<<        Job Abandoned      >>>>>"
             exit 1                           ;;
esac
   shift
done
#THE CODE IS NOT REACHING THIS PART 
rj $DIR/SCRIPT3from=$from_prg to=$to_prg -d $batchdate
  

как я могу получить значение из параметра, который я передал из SCRIPT1 в SCRIPT2? потому что я также буду использовать его в своем SCRIPT3.

Он отображает регистр по умолчанию, эту часть

 echo "<<<<< Invalid restart parameter >>>>>"
echo "<<<<<        Job Abandoned      >>>>>"
  

Комментарии:

1. Это $DIR/SCRIPT2$ParamLine должно быть "$DIR/SCRIPT2" "$ParamLine" , но лучший ответ — чепнера

Ответ №1:

Первый скрипт можно заменить одной строкой

 "$DIR"/SCRIPT2 "$@"
  

Попытка свести аргументы к одной плоской строке неверна.

Комментарии:

1. Он работает с, . SCRIPT1 var= 1234. как можно ввести только значение, а не переменную?