Changes

Jump to navigation Jump to search
40 bytes added ,  10:48, 9 April 2019
m
Line 1: Line 1:  
'''BASH Scripting'''
 
'''BASH Scripting'''
== Hello World ==
+
==Hello World==
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
Line 7: Line 7:  
</source>
 
</source>
   −
== Variables ==
+
==Variables==
=== Local Variables ===
+
===Local Variables===
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
Line 20: Line 20:  
echo $HELLO
 
echo $HELLO
 
</source>
 
</source>
=== Boolean ===
+
===Boolean===
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
Line 30: Line 30:  
</source>
 
</source>
   −
== Print ==
+
==Print==
=== Print to stderr ===
+
===Print to stderr===
 
  f_pinta_error () {
 
  f_pinta_error () {
 
v_TIMESTAMP=$(date +${v_FORMATO_TIMESTAMP})
 
v_TIMESTAMP=$(date +${v_FORMATO_TIMESTAMP})
Line 37: Line 37:  
  }
 
  }
   −
== Strings ==
+
==Strings==
   −
== Loops ==
+
==Loops==
=== While ===
+
===While===
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
Line 50: Line 50:  
</source>
 
</source>
   −
=== For ===
+
===For===
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
Line 63: Line 63:  
</source>
 
</source>
   −
=== C-like for ===
+
===C-like for===
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
Line 71: Line 71:  
done
 
done
 
</source>
 
</source>
=== Loop files ===
+
===Loop files===
 
  while read p; do echo $p|underscore pretty ; done < /tenkaichi/boo/done/krilin_2017-12-21T12:45:29.544997.jl.boo
 
  while read p; do echo $p|underscore pretty ; done < /tenkaichi/boo/done/krilin_2017-12-21T12:45:29.544997.jl.boo
   −
=== Loop files in directory ===
+
===Loop files in directory===
 
With paths:
 
With paths:
<source lang="bash">for filename in /usr/bin/*; do echo $filename; done</source>
+
<source lang="bash">for filename in /usr/bin/*; do echo $filename; done</source>
 
Without path:
 
Without path:
<source lang="bash">for i in $(ls /usr/bin);do echo $i; done;</source>
+
<source lang="bash">for i in $(ls /usr/bin);do echo $i; done;</source>
   −
=== Until ===
+
===Until===
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
Line 90: Line 90:  
</source>
 
</source>
   −
== Conditional ==
+
==Conditional==
=== if ===
+
===if===
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
Line 103: Line 103:  
</source>
 
</source>
   −
=== case ===
+
===case===
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
Line 138: Line 138:  
</source>
 
</source>
   −
== User Input ==
+
==User Input==
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
Line 150: Line 150:  
done
 
done
 
</source>
 
</source>
=== Password prompt ===
+
===Password prompt===
 
<source lang="bash">
 
<source lang="bash">
 
read -s -p "Password: " PASSWORD
 
read -s -p "Password: " PASSWORD
 
</source>
 
</source>
   −
== Arrays ==
+
==Arrays==
 
<source lang="bash">
 
<source lang="bash">
 
ARRAY=(one two three)
 
ARRAY=(one two three)
Line 174: Line 174:  
</source>
 
</source>
   −
== Functions ==
+
==Functions==
 
<source lang="bash">
 
<source lang="bash">
 
function quit {
 
function quit {
Line 192: Line 192:  
fun1 || fun2 will only run fun2 if fun1 returns a 0 value<br />
 
fun1 || fun2 will only run fun2 if fun1 returns a 0 value<br />
   −
== Redirections ==
+
==Redirections==
=== stdout 2 file ===
+
===stdout 2 file===
 
  ls -l > ls-l.txt
 
  ls -l > ls-l.txt
=== stderr 2 file ===
+
===stderr 2 file===
 
  grep da * 2> grep-errors.txt
 
  grep da * 2> grep-errors.txt
=== stdout 2 stderr ===
+
===stdout 2 stderr===
 
  grep da * 1>&2
 
  grep da * 1>&2
=== stderr 2 stdout ===
+
===stderr 2 stdout===
 
  grep * 2>&1
 
  grep * 2>&1
=== stderr and stdout 2 file ===
+
===stderr and stdout 2 file===
 
  rm -f $(find / -name core) &> /dev/null
 
  rm -f $(find / -name core) &> /dev/null
== extras ==
+
==extras==
=== Backup Hard Drive ===
+
===Backup Hard Drive===
<source lang="bash">#!/bin/bash
+
<source lang="bash">#!/bin/bash
 
USAGE="./$(basename ${0}) UUID output_filename"
 
USAGE="./$(basename ${0}) UUID output_filename"
 
BACKUP_ROOT=/mnt/backup
 
BACKUP_ROOT=/mnt/backup
Line 223: Line 223:  
dd if=${HD} of=${ISO} bs=1M</source>
 
dd if=${HD} of=${ISO} bs=1M</source>
   −
=== Ping IP range ===
+
===Ping IP range===
<source lang="bash">#!/bin/bash
+
<source lang="bash">#!/bin/bash
 
# cat ping_result.txt | grep ttl | awk '{print $4}' | sed s/:/''/g| sort | uniq
 
# cat ping_result.txt | grep ttl | awk '{print $4}' | sed s/:/''/g| sort | uniq
 
BASE=192.168.0.
 
BASE=192.168.0.
Line 230: Line 230:  
     ping -c 3 ${BASE}$i >> ping_result.txt
 
     ping -c 3 ${BASE}$i >> ping_result.txt
 
done</source>
 
done</source>
=== Check if a package is installed ===
+
===Check if a package is installed===
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/sh
 
#!/bin/sh
Line 239: Line 239:  
debInst terminator
 
debInst terminator
 
</source>
 
</source>
=== Check if a file exists ===
+
===Check if a file exists===
 
<source lang="bash">
 
<source lang="bash">
 
if [ -f $FILE1 ]
 
if [ -f $FILE1 ]
Line 251: Line 251:  
</source>
 
</source>
   −
=== Check if directory exists ===
+
===Check if directory exists===
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
Line 268: Line 268:  
</source>
 
</source>
   −
=== Check user ===
+
===Check user===
<source lang="bash">
+
<syntaxhighlight lang="bash">
 +
#!/bin/bash
 +
if [ "$EUID" -ne 0 ]
 +
  then echo "Please run as root"
 +
  exit
 +
fi
 +
</syntaxhighlight><source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
 
user=$(whoami)
 
user=$(whoami)
Line 281: Line 287:  
fi
 
fi
 
</source>
 
</source>
=== Execute localScript on remote server ===
+
===Execute localScript on remote server===
 
  <nowiki>ssh [user]@[server] 'bash -s' < [local_script]</nowiki>
 
  <nowiki>ssh [user]@[server] 'bash -s' < [local_script]</nowiki>
   −
=== Remove directorys ===
+
===Remove directorys===
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/sh
 
#!/bin/sh
Line 304: Line 310:  
~/myfolder3/$1/thisisafolder
 
~/myfolder3/$1/thisisafolder
 
EOF
 
EOF
</source>
+
</source><br />
=== Check if variable is set ===
+
===Check if variable is set===
 
  if [ -z ${var+x} ]; then echo "var is unset"; else echo "var is set to '$var'"; fi
 
  if [ -z ${var+x} ]; then echo "var is unset"; else echo "var is set to '$var'"; fi
=== Check command success ===
+
===Check command success===
   −
<source lang="bash">#!/bin/bash
+
<source lang="bash">#!/bin/bash
 
###########################################
 
###########################################
 
#          Pull latest code &            #
 
#          Pull latest code &            #
Line 349: Line 355:  
</source>
 
</source>
   −
=== Ubuntu proxy setup ===
+
===Ubuntu proxy setup===
 
<source lang="bash">
 
<source lang="bash">
 
#! /bin/bash
 
#! /bin/bash
Line 376: Line 382:  
</source>
 
</source>
   −
=== Git check version ===
+
===Git check version===
<source lang="bash">#!/bin/bash
+
<source lang="bash">#!/bin/bash
    
function set_upstream() {
 
function set_upstream() {
Line 416: Line 422:  
}
 
}
 
check_latest_version</source>
 
check_latest_version</source>
=== Git check for updates and prompt to update ===
+
===Git check for updates and prompt to update===
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/bash
 
#!/bin/bash
Line 458: Line 464:  
</source>
 
</source>
   −
=== Logging ===
+
===Logging===
       
For logging, you can wrap sections of your script in curly braces and redirect the stdout to a log file:
 
For logging, you can wrap sections of your script in curly braces and redirect the stdout to a log file:
<source lang=bash>
+
<source lang="bash">
 
{
 
{
 
     script_command_1
 
     script_command_1
Line 470: Line 476:  
</source>
 
</source>
   −
=== Links ===
+
===Links===
 
[http://tldp.org/LDP/abs/html/ Advanced Bash-Scripting Guide]
 
[http://tldp.org/LDP/abs/html/ Advanced Bash-Scripting Guide]

Navigation menu