Difference between revisions of "Bash"
Line 25: | Line 25: | ||
==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== | ||
Variabler i bash skrivs på följande sätt <code>'''variable-name='''''<value>''</code> | Variabler i bash skrivs på följande sätt <code>'''variable-name='''''<value>''</code> | ||
− | <source lang=bash> | + | <source lang=bash line highlight=2> |
#!/usr/bin/env bash | #!/usr/bin/env bash | ||
HW="Hello World" | HW="Hello World" | ||
Line 41: | Line 41: | ||
==Argument== | ==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>. | 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> | + | <source lang=bash line> |
#!/usr/bin/env bash | #!/usr/bin/env bash | ||
echo $1 $2 | echo $1 $2 | ||
Line 58: | Line 58: | ||
</source> | </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: | 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> | + | <source lang=bash line start="30"> |
set -x | set -x | ||
...... | ...... |
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