Difference between revisions of "Bash"
(One intermediate revision by the same user not shown) | |||
Line 18: | Line 18: | ||
fi | fi | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | =Awesome bash= | ||
+ | Awesome bash är en lista med massa länkar till olika bash saker. Allt från böcker, custom environment, frameworks, spel. | ||
+ | https://github.com/awesome-lists/awesome-bash | ||
=Bash scripting= | =Bash scripting= | ||
− | Att skriva bash script | + | Att skriva bash script kan vara väldigt enkelt och kan spara mycket tid, här under kommer en del tips som kan vara bra att känna till. |
==Shebang== | ==Shebang== | ||
Man öppnar alltid alla script med en så kallad shebang. Detta för att systemet ska veta av hur den ska köra filen. | Man öppnar alltid alla script med en så kallad shebang. Detta för att systemet ska veta av hur den ska köra filen. | ||
− | <syntaxhighlight lang=bash> | + | <syntaxhighlight lang=bash line> |
#!/usr/bin/env bash | #!/usr/bin/env bash | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | ==Variabler== | ||
+ | Variabler i bash skrivs på följande sätt <code>'''variable-name='''''<value>''</code> | ||
+ | <source lang=bash line highlight=2> | ||
+ | #!/usr/bin/env bash | ||
+ | HW="Hello World" | ||
+ | echo $HW | ||
+ | </source> | ||
+ | <source lang=bash> | ||
+ | sparco@jumpgate:~$ ./script | ||
+ | Hello World | ||
+ | </source> | ||
+ | ==Argument== | ||
+ | Att kunna skicka in argument i sitt bash script för att göra det mer dynamiskt kan vara bra ibland. Första argumentet mappas mot <code>$1</code> medans resten bara fortsätter enligt <code>$2,$3,$4...</code>. | ||
+ | <source lang=bash line> | ||
+ | #!/usr/bin/env bash | ||
+ | echo $1 $2 | ||
+ | </source> | ||
+ | <source lang=bash> | ||
+ | sparco@jumpgate:~$ ./script Hello World | ||
+ | Hello World | ||
+ | </source> | ||
+ | ==Debuga scripts== | ||
+ | Att kunna debuga scripts kan göras på olika sätt genom att köra <code>echo</code> på variabler eller sätta på en växel i bash som gör att den printar allt i sdout. | ||
+ | Att köra scriptet med <code>bash -x</code> | ||
+ | <source lang=bash> | ||
+ | sparco@jumpgate:~$ bash -x ./script Hello world | ||
+ | + echo Hello world | ||
+ | Hello world | ||
+ | </source> | ||
+ | Ett annat sätt om man vill debuga delar av ett script istället för allt kan man använda sig av följande sätt: | ||
+ | <source lang=bash line start="30"> | ||
+ | set -x | ||
+ | ...... | ||
+ | set +x | ||
+ | </source> | ||
+ | |||
+ | |||
+ | |||
+ | |||
[[Category:Tools]] | [[Category:Tools]] |
Latest revision as of 19:12, 25 March 2019
Bash är den allra vanligaste kommandotolken man möts av i Linux.
Contents
Bash sensible
Bash sensible är ett script som försöker sätta bättre bash default inställningar. Precis som Vim sensible försöker göra åt vim.
Sensible fixar bla hur bash hanterar history
- Adderar till historiken istället för att skriva över.
- Sparar multi-line kommandon som ett kommando.
- Större historik.
- Tar bort dubbletter.
- Sparar inte onödiga kommandon som exit, ls, bg, fg och history.
git clone https://github.com/mrzool/bash-sensible/blob/master/sensible.bash
För att installera kan man kopiera hela sensible.bash eller delar av filen in i sin bashrc fil eller source in filen i sin bashrc fil:
if [ -f ~/bash-sensible/sensible.bash ]; then
source ~/bash-sensible/sensible.bash
fi
Awesome bash
Awesome bash är en lista med massa länkar till olika bash saker. Allt från böcker, custom environment, frameworks, spel.
https://github.com/awesome-lists/awesome-bash
Bash scripting
Att skriva bash script kan vara väldigt enkelt och kan spara mycket tid, här under kommer en del tips som kan vara bra att känna till.
Shebang
Man öppnar alltid alla script med en så kallad shebang. Detta för att systemet ska veta av hur den ska köra filen.
1 #!/usr/bin/env bash
Variabler
Variabler i bash skrivs på följande sätt variable-name=<value>
1 #!/usr/bin/env bash
2 HW="Hello World"
3 echo $HW
sparco@jumpgate:~$ ./script
Hello World
Argument
Att kunna skicka in argument i sitt bash script för att göra det mer dynamiskt kan vara bra ibland. Första argumentet mappas mot $1
medans resten bara fortsätter enligt $2,$3,$4...
.
1 #!/usr/bin/env bash
2 echo $1 $2
sparco@jumpgate:~$ ./script Hello World
Hello World
Debuga scripts
Att kunna debuga scripts kan göras på olika sätt genom att köra echo
på variabler eller sätta på en växel i bash som gör att den printar allt i sdout.
Att köra scriptet med bash -x
sparco@jumpgate:~$ bash -x ./script Hello world
+ echo Hello world
Hello world
Ett annat sätt om man vill debuga delar av ett script istället för allt kan man använda sig av följande sätt:
30 set -x
31 ......
32 set +x