Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: if else und co

if else und co 4 Jahre 2 Monate her #4802

  • admin
  • OFFLINE
  • Administrator
  • Beiträge: 799
  • Punkte: 63840
  • Karma: 0
  • Honar Medal Silver Honor Medal Bronze Honor Medal Gold
Hat einer eine Idee warum dies nicht funktioniert?

Ich möchte eine Datei mit "find" überprüfen und dann wenn diese gefunden wird eine Variable auf "1" setzen.

Da diese vorher definiert wurde sollte sie wenn die Datei nicht gefunden wird auf "0" bleiben. Aber er setzt mir immer die Variable auf "1". Ich hab versucht "else" einzufügen und/oder "elif", aber bei "else" geht gar nichts und bei "elif" macht er nur die "elif" und lässt die "if" aus "lol".

Außerdem sagt mein Bash Buch nichts vom ";" Zeichen, aber hier muss ich es benutzen, ist das Unix bzw. Haiku speziell?

[code:1]
#!/bin/sh
#developer: lelldorin

Script=$(readlink -f $0)
folder=`dirname $Script`

echo $folder

countera=0
counterb=0
counterc=0


libncursescommon=$(find /boot/common/lib/libncurses.so)
if [ $libncursescommon=="/boot/common/lib/libncurses.so" ];
then
countera=1
echo "common"
fi;
echo $countera

libncursessystem=$(find /boot/system/lib/libncurses.so)
if [ $libncursessystem=="/boot/system/lib/libncurses.so" ];
then
echo "system"
counterb=1
fi;
echo $counterb

libncurseshome=$(find /boot/home/config/lib/libncurses.so)
if [ $libncurseshome=="/boot/home/config/lib/libncurses.so" ];
then
echo "home"
counterc=1
fi;
echo $counterc
[/code:1]

Gruß Lelldorin
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Re: if else und co 4 Jahre 2 Monate her #4803

  • Superadmin
  • OFFLINE
  • Administrator
  • Beiträge: 219
  • Karma: 0
hi Lelldorin,

die Lösung bring ich dir mit. Hier ein kleiner Ausschnitt.
if [ -e /boot/home/config/lib/libstdc++.so ] ; then
counterf=1
echo "found in home"
echo $counterd
else
counterf=0
echo "not in home"
echo $counterf
fi
if [ $counterd = "0" ] && [ $countere = "0" ] && [ $counterf = "0" ] ; then
echo "Nothing to link. Missing libstdc++.so"
elif [ $counterd = "1" ] && [ $countere = "0" ] && [ $counterf = "0" ] ; then
echo "Linking from common"
elif [ $counterd = "0" ] && [ $countere = "1" ] && [ $counterf = "0" ] ; then
echo "Linking from system"
elif [ $counterd = "0" ] && [ $countere = "0" ] && [ $counterf = "1" ] ; then
echo "Linking from home"
elif [ $counterd = "1" ] && [ $countere = "1" ] && [ $counterf = "0" ] ; then
echo "libstdc++.so found in common and system"
elif [ $counterd = "1" ] && [ $countere = "0" ] && [ $counterf = "1" ] ; then
echo "libstdc++.so found in common and home"
elif [ $counterd = "0" ] && [ $countere = "1" ] && [ $counterf = "1" ] ; then
echo "libstdc++.so found in system and home"
elif [ $counterd = "1" ] && [ $countere = "1" ] && [ $counterf = "1" ] ; then
echo "libstdc++.so found in all directories"
else
echo "not in home"
fi

Gruß Lorglas
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Ladezeit der Seite: 0.327 Sekunden

Zusätzliche Informationen