Przeróbka skryptu bash na bat


(Kriston Pl) #1

Witam, potrzebuje przerobić oraz uprościć skrypt linuxowy, tak żeby działał w windowsie...

Ma on robić następującą rzecz;

1) po odpaleniu użytkownik podaje 4 cyfrowy numer

2) na bazie tego numeru skrypt ma ustawić ip komputera, zakładająć że zmianiają się tylko dwa środkowe oktety

np. 5.a.b.103 zmiania się tylok a oraz b w zalezności od numeru sklepu

 

O ile jestem w stanie napiśą coś takiego jako skrypt bat to jakoś nie kapuje jak to działa w bashu, jak by ktoś wytłumaczył mi skąd są brane te oktety to chyba bym dał radę.

Kod orginalny poniżej;

#!/bin/bash
SKLEPSERVICE=/root/sklepService
. $SKLEPSERVICE/modules/stdlib
DISTRO=$([[-f /etc/distro]] && cat /etc/distro || echo "NPSP")
IM="`myfullname`" # <-ten skrypt (cala scizka)
BASEIM="`mybasename`" # <-sama nazwa skryptu
LF="${IM}.log" # <-logfile
SZER=`tput cols`; SZER=`expr ${SZER} - 9`
POSTEP="postep -p 20 -c - -w ${SZER}"
diatmp="`mktemp`"

usage(){
	echo -e "
	${k_msg}`mybasename`${k0} - skrypt konfigurujacy karty sieciowe dla sklepow 
	Wywolanie:
	`mybasename` [--version|-v] [--help|-h]
	gdzie
	--version|-v\t- informacja o wersji (ze zmiennej \"version\"),
	--help|-h\t- ta pomoc.
	"
}


#------------------Pobieranie numery sklepu----------------------
case $1 in
      --help|-h) usage; exit ;;
      --version|-v) view_version; exit ;;
esac
diainputc "${BASEIM}" "${cn}Wprowadz numer sklepu np:0001:" 2>"${diatmp}"
if [$? != 0] ; then
	write_log "Program zamkniety na zyczenie uzytkownika."
	finish 250
fi
NR=$(2<${diatmp})
while ! [["$NR" =~ ^[0-9][0-9][0-9][0-9]$ ]]; do
	echoErr "Numer sklepu musi sie skladac z dokladnie czterech cyfr!"
	sleep 5
	diainputc "${BASEIM}" "${cn}Wprowadz numer sklepu np:0001:" 2>"${diatmp}"
	if [$? != 0] ; then
		write_log "Program zamkniety na zyczenie uzytkownika."
		finish 250
	fi
	NR=$(2<${diatmp})
done

SHOP_NO="$NR"

SHOP_TYPE="sklep"
case ${SHOP_NO:0:1} in
	0|1|2|3)SHOP_TYPE="typ1";;
	7)SHOP_TYPE="typ2";;
	8)SHOP_TYPE="typ3";;
	*)error 3 "Nieobslugiwany rodzaj sklepu!";;
esac

set_network $SHOP_NO

write_log "Finishing script!"

echo -e "\033[1;32m"
echo -e "\n\t **Koncze dzialanie**"
echo -e "\033[0m"

(mktos) #2

Ten skrypt nie zmienia żadnych ustawień, a tylko przyjmuje dane i sprawdza ich poprawność i przekazuje wszystko do polecenia (skryptu?) set_network.