我是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
这里是将从SCRIPT1
中捕获参数的SCRIPT2from_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 >>>>>"
答案 0 :(得分:1)
第一个脚本可以用一行代替
"$DIR"/SCRIPT2 "$@"
尝试将参数压缩为单个扁平字符串是错误的。