PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [bash] Eingabe Aufforderung mit Signal



undefined
15-02-2006, 22:09
Ich bin gerade X11R7.0 am Installieren.
Jetzt Möchte ich in meinem Script gerne vor jeden INSTALL ein Signal mit einer Eingabe Aufforderung haben weiss aber nicht wo ich suchen muss.


#!/bin/sh

DESTDIR=$BUILDDIR

PREFIX=/usr/X11R6

build() {

cd $1/$2

echo "### Building $2 with $3 ###"

EXTRA=$3

autoreconf -v --install --force -I ${DESTDIR}${PREFIX}/share/aclocal -I .

if [ -x configure ] ; then
CFLAGS="-O2 -g -march=i586 -mcpu=i686 -fmessage-length=0" \
CXXFLAGS="-O2 -g -march=i586 -mcpu=i686 -fmessage-length=0" \
./configure --host=i686-suse-linux --build=i686-suse-linux \
CPPFLAGS="-I${DESTDIR}${PREFIX}/include" \
--target=i586-suse-linux --program-suffix="" \
--prefix=/usr/X11R6 --sysconfdir=/etc --libdir=/usr/X11R6/lib \
--includedir=/usr/X11R6/include --bindir=/usr/X11R6/bin \
--localstatedir=/var --sharedstatedir=/usr/com \
--mandir=/usr/X11R6/share/man --infodir=/usr/X11R6/share/info \
--enable-static=yes --enable-shared=yes ${EXTRA}
else
exit 1
fi

if [ -r Makefile ] ; then
gmake -j1
else
exit 1
fi

gmake DESTDIR=$BUILDDIR install

cd -
}

build_lib() {
build lib xtrans
build lib libXau
build lib libXdmcp
build lib libX11 "--enable-loadable-i18n"
build lib libXext
build lib libAppleWM
build lib libWindowsWM
build lib libdmx
build lib libfontenc
build lib libFS
build lib libICE
build lib liblbxutil
build lib liboldX
build lib libSM
build lib libXt
build lib libXmu
build lib libXpm
build lib libXp
build lib libXaw
build lib libXfixes
build lib libXcomposite
build lib libXrender
build lib libXdamage
build lib libXcursor
build lib libXevie
build lib libXfont
build lib libXfontcache
build lib libXft
build lib libXi
build lib libXinerama
build lib libxkbfile
build lib libxkbui
build lib libXprintUtil
build lib libXprintAppUtil
build lib libXrandr
build lib libXres
build lib libXScrnSaver
build lib libXTrap
build lib libXtst
build lib libXv
build lib libXvMC
build lib libXxf86dga
build lib libXxf86misc
build lib libXxf86vm
}

# The following is required to make pkg-config find our .pc metadata files
if test x"$PKG_CONFIG_PATH" = x; then
PKG_CONFIG_PATH=${DESTDIR}${PREFIX}/lib/pkgconfig
else
PKG_CONFIG_PATH=${DESTDIR}${PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}
fi
export PKG_CONFIG_PATH

# Set the library path so that locally built libs will be found by apps
if test x"$LD_LIBRARY_PATH" = x; then
LD_LIBRARY_PATH=${DESTDIR}${PREFIX}/lib
else
LD_LIBRARY_PATH=${DESTDIR}${PREFIX}/lib:${LD_LIBRARY_PATH}
fi
export LD_LIBRARY_PATH

# Set the path so that locally built apps will be found and used
if test x"$PATH" = x; then
PATH=${DESTDIR}${PREFIX}/bin
else
PATH=${DESTDIR}${PREFIX}/bin:${PATH}
fi
export PATH

build_lib

Romanday
16-02-2006, 07:46
Ich bin gerade X11R7.0 am Installieren.
Jetzt Möchte ich in meinem Script gerne vor jeden INSTALL ein Signal mit einer Eingabe Aufforderung haben weiss aber nicht wo ich suchen muss.



ein wenig zu Signalen gibt es hier:
http://wiki.unixboard.de/index.php/Linuxfibel_-_Nutzerkommandos_-_Prozesssteuerung

Eine Eingabeaufforderung kannst du dir z. B. mit read basteln.

read A B C
echo "Ihre Eingabe war $A $B $C"

undefined
16-02-2006, 09:49
Du meintest wohl eher den Link ;) http://wiki.unixboard.de/index.php/Linuxfibel_-_Shells_-_Bashprogrammierung#Interaktive_Eingaben damit geht es


Installieren() {
case "$1" in
yes)
echo 1
;;
no)
echo 0
;;
esac
return 0
}

build() {

cd $1/$2

echo "### Building $2 with $3 ###"

EXTRA=$3

autoreconf -v --install --force -I ${DESTDIR}${PREFIX}/share/aclocal -I .

if [ -x configure ] ; then
CFLAGS="-O2 -g -march=i586 -mcpu=i686 -fmessage-length=0" \
CXXFLAGS="-O2 -g -march=i586 -mcpu=i686 -fmessage-length=0" \
./configure --host=i686-suse-linux --build=i686-suse-linux \
CPPFLAGS="-I${DESTDIR}${PREFIX}/include" \
--target=i586-suse-linux --program-suffix="" \
--prefix=/usr/X11R6 --sysconfdir=/etc --libdir=/usr/X11R6/lib \
--includedir=/usr/X11R6/include --bindir=/usr/X11R6/bin \
--localstatedir=/var --sharedstatedir=/usr/com \
--mandir=/usr/X11R6/share/man --infodir=/usr/X11R6/share/info \
--enable-static=yes --enable-shared=yes ${EXTRA}
else
exit 1
fi

if [ -r Makefile ] ; then
gmake -j1
else
exit 1
fi

tput bel

echo -n "Installiere {yes|no} $2 : "

read Eingabe
DOINSTALL=$( Installieren $Eingabe $PWD 2> /dev/null )

if [ "$DOINSTALL" == 1 ] ; then
gmake DESTDIR=$BUILDDIR install
else
killall rpmbuild
exit 1
fi

cd -
}

Romanday
16-02-2006, 19:03
Du meintest wohl eher den Link ;) http://wiki.unixboard.de/index.php/Linuxfibel_-_Shells_-_Bashprogrammierung#Interaktive_Eingaben

Auch ein guter Link.

Sorry, den hatte ich auf die Schnelle nicht gefunden.;)