<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kb.rvmgroup.it/index.php?action=history&amp;feed=atom&amp;title=Bash_Cheat_Sheet</id>
	<title>Bash Cheat Sheet - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://kb.rvmgroup.it/index.php?action=history&amp;feed=atom&amp;title=Bash_Cheat_Sheet"/>
	<link rel="alternate" type="text/html" href="https://kb.rvmgroup.it/index.php?title=Bash_Cheat_Sheet&amp;action=history"/>
	<updated>2026-06-19T22:16:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://kb.rvmgroup.it/index.php?title=Bash_Cheat_Sheet&amp;diff=6754&amp;oldid=prev</id>
		<title>Gabriele.vivinetto: New page: Category:Cheat Sheets == Program Structure ==  ===Making a file a bash script=== Put the following line at beginning of file. &lt;code&gt;[bash,N] #!/bin/bash &lt;/code&gt;     ===Comments=== &lt;cod...</title>
		<link rel="alternate" type="text/html" href="https://kb.rvmgroup.it/index.php?title=Bash_Cheat_Sheet&amp;diff=6754&amp;oldid=prev"/>
		<updated>2010-02-19T15:29:46Z</updated>

		<summary type="html">&lt;p&gt;New page: &lt;a href=&quot;/index.php?title=Category:Cheat_Sheets&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Category:Cheat Sheets (page does not exist)&quot;&gt;Category:Cheat Sheets&lt;/a&gt; == Program Structure ==  ===Making a file a bash script=== Put the following line at beginning of file. &amp;lt;code&amp;gt;[bash,N] #!/bin/bash &amp;lt;/code&amp;gt;     ===Comments=== &amp;lt;cod...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Cheat Sheets]]&lt;br /&gt;
== Program Structure ==&lt;br /&gt;
&lt;br /&gt;
===Making a file a bash script===&lt;br /&gt;
Put the following line at beginning of file.&lt;br /&gt;
&amp;lt;code&amp;gt;[bash,N]&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Comments===&lt;br /&gt;
&amp;lt;code&amp;gt;[bash,N]&lt;br /&gt;
# This is a bash comment&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Functions===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[bash,N]&lt;br /&gt;
function function_name {&lt;br /&gt;
  function_body&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternate &lt;br /&gt;
&amp;lt;code&amp;gt;[bash,N]&lt;br /&gt;
function_name() {&lt;br /&gt;
  function_body&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using arguments &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[bash,N]&lt;br /&gt;
function_name() {&lt;br /&gt;
  echo &amp;quot;$# is the number of arguments received&amp;quot;;&lt;br /&gt;
  echo &amp;quot;$1 $2 $3 ... are the first, second, third... arguments&amp;quot;;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Data Types ==&lt;br /&gt;
Variables in bash are not associated with any data type. All data is essentially string of characters. However, at evaluation time, depending on the context (operator), the strings are interpreted as either characters (&amp;#039;a&amp;#039;, &amp;#039;5&amp;#039;,...), strings (&amp;quot;xyz&amp;quot;, &amp;quot;pqr&amp;quot;,...), integers (45, -348,...) or floating point expressions (3.45, 0.009...).&lt;br /&gt;
&lt;br /&gt;
== Operators ==&lt;br /&gt;
&lt;br /&gt;
=== Arithmetic Operators ===&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Operator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;amp;#43;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Addition&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;amp;#45;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Subtraction &lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;amp;#42;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Multiplication &lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;amp;#47;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Division &lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;amp;#37;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Remainder&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;amp;#43;&amp;amp;#43;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|pre/post increment&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;amp;#45;&amp;amp;#45;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|pre/post decrement&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Relational Operators ===&lt;br /&gt;
&lt;br /&gt;
==== On numbers ====&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Operator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-lt&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Less Than&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-le&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Less Than or Equal To&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-gt&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Greater Than&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-ge&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Greater Than or Equal To&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-eq&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Equal To&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-ne&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Not Equal To&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== On strings ==== &lt;br /&gt;
&lt;br /&gt;
(String comparisons are in ASCII order)&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Operator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;lt;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Less Than&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;lt;=&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Less Than or Equal To&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;gt;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Greater Than&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;gt;=&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Greater Than or Equal To&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|==&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Equal To&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|!=&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Not Equal To&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-z&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|True if string length is zero&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -n&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|True if string length is non-zero&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Logical Operators ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Operator&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;amp;#38;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Bitwise AND&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|^&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Bitwise XOR&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;amp;#124;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Bitwise OR&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;amp;#38;&amp;amp;#38;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Logical AND&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&amp;amp;#124;&amp;amp;#124;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|Logical OR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Flow of Control ==&lt;br /&gt;
&lt;br /&gt;
=== Conditionals ===&lt;br /&gt;
&lt;br /&gt;
==== If statements ====&lt;br /&gt;
&amp;lt;code&amp;gt; [bash, N]&lt;br /&gt;
if [[ expression_1 ]]; then&lt;br /&gt;
   statements_1&lt;br /&gt;
elif [[ expression_2 ]]; then&lt;br /&gt;
   statements_2&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
else&lt;br /&gt;
   statements_n&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Case statements ====&lt;br /&gt;
&amp;lt;code&amp;gt; [bash, N]&lt;br /&gt;
case expression in &lt;br /&gt;
case1) statements1;;&lt;br /&gt;
case2) statements2;;&lt;br /&gt;
....&lt;br /&gt;
caseN) statementsN;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Loops ===&lt;br /&gt;
&lt;br /&gt;
==== For loop ====&lt;br /&gt;
&amp;lt;code&amp;gt; [bash,N]&lt;br /&gt;
for i in `seq 1 10`;&lt;br /&gt;
do&lt;br /&gt;
   echo $i&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== While loop ====&lt;br /&gt;
&amp;lt;code&amp;gt; [bash,N]&lt;br /&gt;
while [ condition ]; do &lt;br /&gt;
   statements;&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Until loop ====&lt;br /&gt;
&amp;lt;code&amp;gt; [bash,N]&lt;br /&gt;
until [ condition ]; do &lt;br /&gt;
   statements;&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
== Language Specifics ==&lt;br /&gt;
&lt;br /&gt;
=== Expression Evaluation ===&lt;br /&gt;
&lt;br /&gt;
==== Arithmetic ====&lt;br /&gt;
&lt;br /&gt;
((expression)) &lt;br /&gt;
&amp;lt;code&amp;gt; [bash, N]&lt;br /&gt;
A=$(( 10 * (2 + 2) ))&lt;br /&gt;
# A now holds the value 40&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Conditional ====&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#91;&amp;amp;#91; expression &amp;amp;#93;&amp;amp;#93;&lt;br /&gt;
&amp;lt;code&amp;gt; [bash, N]&lt;br /&gt;
if [[ $age -gt 100 ]]; then&lt;br /&gt;
  echo &amp;quot;100 years completed!&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Conditional checks on files ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Common checks ====&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; &lt;br /&gt;
|Operator&lt;br /&gt;
|True if&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-a / -e&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-d&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and is a directory&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-f&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and is a regular file&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-s&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and has size greater than zero&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-r&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and is readable&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-w&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and is writable&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-x&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and is executable&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-N&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and has been modified since it was last read&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== File type related checks ====&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; &lt;br /&gt;
|Operator&lt;br /&gt;
|True if&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-h/ -L &lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and is a symbolic link&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-b&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and is a block special file&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-c&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and is a character special file&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-p&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and is a named pipe (FIFO)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-S&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and is a socket&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Checks on other file properties ====&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; &lt;br /&gt;
|Operator&lt;br /&gt;
|True if&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-O&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and is owned by the effective user id&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-G&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and is owned by the effective group id&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-g&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and is set-group-id&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|-k&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|File exists and its sticky bit is set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
*[http://encycode.com/wiki/index.php/Bash_Cheat_Sheet#Relational_Operators Bash Cheat Sheet - Project Encycode]&lt;/div&gt;</summary>
		<author><name>Gabriele.vivinetto</name></author>
	</entry>
</feed>