Difference between revisions of "BASH"

From RHS Wiki
Jump to navigation Jump to search
Line 21: Line 21:
 
</source>
 
</source>
 
==== Boolean ====
 
==== Boolean ====
 +
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
 
the_world_is_flat=true
 
the_world_is_flat=true
Line 27: Line 28:
 
     echo 'Be careful not to fall off!'
 
     echo 'Be careful not to fall off!'
 
fi
 
fi
 +
</source>
  
 
=== Strings ===
 
=== Strings ===

Revision as of 01:17, 27 March 2015

BASH Script

Hello World

#!/bin/bash
STR="Hello World"
echo $STR

Variables

Local Variables

#!/bin/bash
HELLO=Hello 
function hello {
        local HELLO=World
        echo $HELLO
}
echo $HELLO
hello
echo $HELLO

Boolean

#!/bin/bash
the_world_is_flat=true
# ...do something interesting...
if [ "$the_world_is_flat" = true ] ; then
    echo 'Be careful not to fall off!'
fi

Strings

Loops

While

#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
    echo The counter is $COUNTER
    let COUNTER=COUNTER+1
done

For

#!/bin/bash
for i in $( ls ); do
    echo item: $i
done

C-like for

#!/bin/bash
for i in `seq 1 10`;
do
    echo $i
done

Conditional

if

#!/bin/bash
T1="foo"
T2="bar"
if [ "$T1" = "$T2" ]; then
    echo expresion evaluated as true
else
    echo expresion evaluated as false
fi

case

#!/bin/bash
case $yn in
    [YySs]* ) adduser $user; break;;
    [Nn]* ) echo no se creo usuario $user; break;;
    * ) echo "Elije y/n";;
esac

User Input

#!/bin/bash
while true; do
    read -p "Do you wish to install this program?" yn
    case $yn in
        [Yy]* ) make install; break;;
        [Nn]* ) exit;;
        * ) echo "Please answer yes or no.";;
    esac
done

Arrays

ARRAY=(one two three)

echo ${ARRAY[*]}
one two three

echo $ARRAY[*]
one[*]

echo ${ARRAY[2]}
three

ARRAY[3]=four

echo ${ARRAY[*]}
one two three four

Functions

function quit {
    exit
}
function e {
    echo $1
}
e Hello
e World
quit
echo foo

extras

Check if a package is installed

#!/bin/sh
debInst() {
    dpkg-query -Wf'${db:Status-abbrev}' "$1" 2>/dev/null | grep -q '^i'
}

debInst terminator

Check if a file exists

#!/bin/bash
if [ -d /opt/ ]; then
    echo "Sí, sí existe."
else
    echo "No, no existe"
fi

#-d -» Comprobar si existe determinado directorio
#-f -» Comprobar si existe determinado archivo
#-w -» Comprobar si determinado archivo tiene permisos de escritura
#-x -» Comprobar si determinado archivo tiene permisos de ejecución.

#if not: if [ ! -d /opt/ ]; then

Check user

#!/bin/bash
user=$(whoami)
if [ "$user" == "root" ]; then
   isroot=true
   echo "Eres Root! :)"
else
   isroot=false
   echo "No eres root... :'(" 
   exit
fi