我是Unix和shell脚本的新手所以问题在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 >>>>>"
第一个脚本可以用一行
代替"$DIR"/SCRIPT2 "$@"
试图将参数压缩为单个平面字符串是错误的。