
kann mir jemand helfen, indem er dieses Shell-Skript in ein Bash-Skript umwandelt, bitte.
mein Shell-Skript lautet wie folgt
#!/bin/bash
IN="ifa_in_B2C=ifa_inB2C;ifa_in_ERP_Soap=ifa_inERP;sm=sm_main;tp=tp_main;trp=trp_main;usr=usr_main;wl=wl_main;pe_notification_email=pe_email;pe_notification_sms=pe_sms;pe_group_calc=pe_group;ifa_out_sms=ifa_outSMS;ifa_out_email=ifa_outEmail;ifa_out_oxiB2C=ifa_outOxi;ifa_out_OMTS=ifa_outOMTS;log=log_main;sys=sys_main;ifa_sys=ifa_sys;sm_sys=sm_sys;sp=sp_main;usr_sys=usr_sys;cache_reload=cache_reload"
export GOPATH=C:/Users/user/Desktop/nxtxn-b2c
export PATH=$PATH:C:/Users/user/Desktop/nxtxn-b2c/srcC:/Users/user/Documents/nxtxn-b2c/src:C:/Go/bin
arr=$(echo $IN | tr ";" "\n")
echo "No of Arguments Passed is "$#
if [ "$#" -gt "2" ] || [ "$#" == "2" ]; then
DATE=`date +%Y-%m-%d:%H:%M:%S`
BUILD_ARG=""
echo $DATE
if [ "$3" == "buildversion" ]; then
echo "ENTER the Version no"
read VERSION_NO
echo "ENTER Version Description"
read VERSION_DESP
if [ "$VERSION_NO" == "" ]; then
$BUILD_ARG=""
else
TEMP="\"-X main.version $VERSION_NO -X main.version_date $DATE -X main.version_desc $VERSION_DESP\""
echo $TEMP
BUILD_ARG="-ldflags "
BUILD_ARG=$BUILD_ARG$TEMP
fi
else
echo "Wrong 3rd argument: Use buildversion to create version tags"
fi
echo "Build Arguments : "$BUILD_ARG
echo "METHOD:$1 SUBSYS:$2"
echo "GOPATH : $GOPATH"
for subsys in $arr
do
IFS='=' read -a arr_tmp <<< "$subsys"
echo "%%%%%%%%%%%%%%%%%%%%%%%%% START %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
echo "SUBSYS: ${arr_tmp[0]}"
subsys_pkg=${arr_tmp[0]}"_pkg"
echo "$subsys_pkg"
subsys_main=${arr_tmp[0]}"_main"
if [[ ${arr_tmp[0]} != pe* ]] ; then
main_path="$GOPATH/src/${arr_tmp[0]}/$subsys_main"
else
main_path="$GOPATH/src/pe/${arr_tmp[0]}/$subsys_main"
fi
if [[ ${arr_tmp[0]} != pe* ]] ; then
cd "$GOPATH/src/${arr_tmp[0]}/$subsys_pkg"
else
cd "$GOPATH/src/pe/${arr_tmp[0]}/$subsys_pkg"
fi
if [ "$1" == "build" ]; then
if [ "$2" == "all" ]; then
cd $main_path
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
eval go install -v -x $BUILD_ARG
ret_cmd=$?
error_msg="ERROR : Failed to run the build command!"
if [ $ret_cmd != 0 ]; then
echo "$error_msg"
exit;
fi
mv $GOPATH/bin/${arr_tmp[0]}"_main" $GOPATH/bin/${arr_tmp[1]}
echo "BUILT and INSTALLED : ${arr_tmp[0]}"
elif [ "$2" == ${arr_tmp[0]} ]; then
cd $main_path
echo "***********%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%***********"
eval go install -v -x $BUILD_ARG
ret_cmd=$?
error_msg="ERROR : Failed to run the build command!"
if [ $ret_cmd != 0 ]; then
echo "$error_msg"
exit;
fi
mv $GOPATH/bin/${arr_tmp[0]}"_main" $GOPATH/bin/${arr_tmp[1]}
echo "BUILT and INSTALLED : ${arr_tmp[0]}"
break
78,1-8 40%
fi
elif [ $1 == "cleanbuild" ]; then
if [ $2 == "all" ]; then
echo "********************** CLEAN ***************************"
cd $main_path
go clean -i -x
echo "****************************************************************"
eval go install -v -x $BUILD_ARG
ret_cmd=$?
error_msg="ERROR : Failed to run the build command!"
if [ $ret_cmd != 0 ]; then
echo "$error_msg"
exit;
fi
mv $GOPATH/bin/${arr_tmp[0]}"_main" $GOPATH/bin/${arr_tmp[1]}
#eval go install -v -x $BUILD_ARG
echo "CLEANED and INSTALLED : ${arr_tmp[0]}"
elif [ $2 == ${arr_tmp[0]} ]; then
echo "********************** CLEAN ***************************"
cd $main_path
go clean -i -x
echo "%%%%%%%*************************************************%%%%%%%%"
# eval go build -v -x $BUILD_ARG
eval go install -v -x $BUILD_ARG
ret_cmd=$?
error_msg="ERROR : Failed to run the build command!"
if [ $ret_cmd != 0 ]; then
echo "$error_msg"
exit;
fi
mv $GOPATH/bin/${arr_tmp[0]}"_main" $GOPATH/bin/${arr_tmp[1]}
echo "CLEANED and INSTALLED : ${arr_tmp[0]}"
break
fi
elif [ $1 == "clean" ]; then
if [ $2 == "all" ]; then
echo "********************** CLEAN ONLY ***************************"
cd $main_path
go clean -i -x
echo "****************************************************************"
echo "CLEANED : $subsys"
elif [ $2 == ${arr_tmp[0]} ]; then
echo "********************** CLEAN ***************************"
cd $main_path
go clean -i -x
echo "%%%%%%%*************************************************%%%%%%%%"
echo "CLEANED and INSTALLED : $subsys"
break
fi
else
echo "wrong first argument. Use build|cleanbuild"
break
fi
done
else
echo "Wrong number of arguments. Use build|cleanbuild with subsystem to build"
fi
Antwort1
Bash-Skripte unter Windows
Sie können dies unter Windows nur ausführen, wenn Sie ein vollständiges Subsystem im Unix-Stil installiert haben. Das Skript erwartet, dass standardmäßige Dienstprogramme im Unix-Stil wie date
und tr
installiert sind und mit dem unqualifizierten date
Befehl ausgeführt werden.
Unvorsichtiges Ausschneiden und Einfügen
Die Linie
78,1-8 40%
Sieht so aus, als hätten Sie dieses Skript unachtsam aus einem Editor (vim?) ausgeschnitten und eingefügt, anstatt die Datei zu kopieren oder zu übertragen. Diese Zeile sollte gelöscht werden.
Falsche Syntax
Die Linie
export PATH=$PATH:C:/Users/user/Desktop/nxtxn-b2c/srcC:/Users/user/Documents/nxtxn-b2c/src:C:/Go/bin
enthält mehrere Fehler
- Sie können in Elementen von $PATH keine Doppelpunkte verwenden, ohne sie zu maskieren, da der Doppelpunkt ein Trennzeichen ist.
...b2c/src
Zwischen und sollte ein Doppelpunkt stehen.C:/Users