If-then (Bash): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
 
(5 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 6: Regel 6:
 
mijnvar=$1
 
mijnvar=$1
  
if [ -z "$mijnvar" ]; then
+
if [ -z "$mijnvar" ]
echo "mijnvar is leeg"
+
then
 +
  #
 +
  echo "mijnvar is leeg"
 +
  #
 +
elif [[ "$mijnvar" =~ [0-9] ]]  # Geen idee waarom je dubbele vierkante haakjes hebt
 +
then
 +
  #
 +
  echo "Mijnvar is een getal"
 +
  #
 +
fi
 +
</pre>
 +
 
 +
== Op één regel ==
  
elif [[ "$mijnvar" =~ [0-9] ]]; then   # Geen idee waarom je dubbele vierkante haakjes hebt
+
Een if-then-statement kan prima op één regel, vermits je de afzonderlijke commando's voorziet van een <code>;</code>. Voorbeeld:
echo "Mijnvar is een getal"
 
  
fi
+
<pre>
 +
# Verify variables
 +
#######################################
 +
#
 +
if [ -z "$db_name" ]; then echo "Variable 'db_name' not provided. Exiting"; exit; fi
 +
if [ -z "$db_username" ]; then echo "Variable 'db_username' not provided. Exiting"; exit; fi
 +
if [ -z "$db_pass" ]; then echo "Variable 'db_pass' not provided. Exiting"; exit; fi
 
</pre>
 
</pre>
  
Regel 32: Regel 49:
 
echo "a=1 en b=2"
 
echo "a=1 en b=2"
 
fi
 
fi
 +
</pre>
 +
 +
At another instance, I had to use double "[]". Don't ask me why:
 +
 +
<pre>
 +
if [[ "$site_cat" =~ "_bal_" ]] && [[ "$site_cat" =~ "_cb_" ]]
 
</pre>
 
</pre>
  
Regel 39: Regel 62:
  
 
<pre>
 
<pre>
# Non-existing variable
+
#!/bin/bash
############################################
+
 
#
 
 
if [ "$c" = 1 ]; then
 
if [ "$c" = 1 ]; then
 
echo "Non-existing variable 'c' is equal to 1"
 
echo "Non-existing variable 'c' is equal to 1"
Regel 48: Regel 70:
 
fi
 
fi
 
</pre>
 
</pre>
 +
 +
== See also ==
 +
 +
* [[String comparison (Bash)]]
  
 
== Bronnen ==
 
== Bronnen ==
  
 
* https://stackoverflow.com/questions/13408493/an-and-operator-for-an-if-statement-in-bash
 
* https://stackoverflow.com/questions/13408493/an-and-operator-for-an-if-statement-in-bash

Huidige versie van 5 okt 2022 om 11:12

Basic example

#!/bin/bash

mijnvar=$1

if [ -z "$mijnvar" ]
then
   #
   echo "mijnvar is leeg"
   #
elif [[ "$mijnvar" =~ [0-9] ]]   # Geen idee waarom je dubbele vierkante haakjes hebt
then
   #
   echo "Mijnvar is een getal"
   #
fi

Op één regel

Een if-then-statement kan prima op één regel, vermits je de afzonderlijke commando's voorziet van een ;. Voorbeeld:

# Verify variables
#######################################
#
if [ -z "$db_name" ]; then echo "Variable 'db_name' not provided. Exiting"; exit; fi
if [ -z "$db_username" ]; then echo "Variable 'db_username' not provided. Exiting"; exit; fi
if [ -z "$db_pass" ]; then echo "Variable 'db_pass' not provided. Exiting"; exit; fi

AND

Gebruik && als de logische AND-operator:

#!/bin/bash

a=1
b=2

if [ "$a" = 1 ]; then
	echo "a=1"
fi

if [ "$a" = 1 ] && [ "$b" = 2 ]; then
	echo "a=1 en b=2"
fi

At another instance, I had to use double "[]". Don't ask me why:

if [[ "$site_cat" =~ "_bal_" ]] && [[ "$site_cat" =~ "_cb_" ]]

Non-existing variable

Je kunt straffeloos testen met een niet-bestaande variabele:

#!/bin/bash

if [ "$c" = 1 ]; then
	echo "Non-existing variable 'c' is equal to 1"
else
	echo "Non-existing variable 'c' is not equal to 1"	
fi

See also

Bronnen