Bash: Difference between revisions
From DWIKI
mNo edit summary |
|||
Line 11: | Line 11: | ||
*[https://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/ Change colour of bash prompt] | *[https://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/ Change colour of bash prompt] | ||
=Tips and tricks= | |||
==String manipulation== | = Tips and tricks = | ||
===Remove character from string=== | |||
== String manipulation == | |||
=== Remove character from string === | |||
VERSION='2.3.3' | VERSION='2.3.3' | ||
echo "${VERSION//.}" | echo "${VERSION//.}" | ||
===check if var contains substring=== | === check if var contains substring === | ||
[[ $foo =~ .*sub.* ]] | |||
=== get first character of a string === | |||
FIRST=${STRING:0:1} | FIRST=${STRING:0:1} | ||
==read without while loop== | == read without while loop == | ||
The problem is scope, try | The problem is scope, try | ||
echo foo bar | { read a b;echo $b; } | echo foo bar | { read a b;echo $b; } | ||
==check if variable is integer== | == check if variable is integer == | ||
if [[$foo =~ ^[0-9]+$]] | |||
| |||
| |||
== move cursor == | |||
^b move back 1 char | ^b move back 1 char | ||
^f move forward 1 char | ^f move forward 1 char | ||
Line 39: | Line 50: | ||
alf-f move forward 1 word | alf-f move forward 1 word | ||
==loops== | == loops == | ||
===loop through range of numbers=== | |||
=== loop through range of numbers === | |||
for i in {0..10};do echo $i;done | for i in {0..10};do echo $i;done | ||
| |||
=== exit while loop === | |||
break | break | ||
| |||
=== skip one in loop === | |||
continue | continue | ||
==bash history timestamp== | == bash history timestamp == | ||
HISTTIMEFORMAT="%d/%m/%y %T " | HISTTIMEFORMAT="%d/%m/%y %T " | ||
==screen and bash history== | == screen and bash history == | ||
To make sure all screens write to same history (at least on CentOS and RHEL): | To make sure all screens write to same history (at least on CentOS and RHEL): | ||
echo "history -a;history -r" > /etc/sysconfig/bash-prompt-screen | echo "history -a;history -r" > /etc/sysconfig/bash-prompt-screen | ||
chmod +x /etc/sysconfig/bash-prompt-screen | chmod +x /etc/sysconfig/bash-prompt-screen | ||
In general: | In general: | ||
export PROMPT_COMMAND='history -n' | export PROMPT_COMMAND='history -n' | ||
or | or | ||
export PROMPT_COMMAND="history -a; history -c; history -r; ${PROMPT_COMMAND}" | export PROMPT_COMMAND="history -a; history -c; history -r; ${PROMPT_COMMAND}" | ||
==functions== | == functions == | ||
function foo() { | function foo() { | ||
echo $1 $2 | echo $1 $2 | ||
} | } | ||
== Check if disk is mounted == | |||
mountpoint /mnt/foo | |||
[[Category:Scripting]] [[Category:Programming]] |
Revision as of 10:17, 2 February 2021
- Homepage
- http://www.linuxdoc.org/HOWTO/Bash-Prog-Intro-HOWTO.html
- Shortcuts to move faster in Bash command line
- Bash Guide for Beginners
- http://www.ling.helsinki.fi/users/reriksso/unix/shell.html
- Advanced Bash Scripting Guide
- Linux Shell Scripting Tutorial
- Aliens Bash Tutorial
- http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/
- Bash Keyboard Shortcuts
- Change colour of bash prompt
Tips and tricks
String manipulation
Remove character from string
VERSION='2.3.3' echo "${VERSION//.}"
check if var contains substring
$foo =~ .*sub.*
get first character of a string
FIRST=${STRING:0:1}
read without while loop
The problem is scope, try
echo foo bar | { read a b;echo $b; }
check if variable is integer
if [[$foo =~ ^[0-9]+$]]
move cursor
^b move back 1 char ^f move forward 1 char alt-b move back 1 word alf-f move forward 1 word
loops
loop through range of numbers
for i in {0..10};do echo $i;done
exit while loop
break
skip one in loop
continue
bash history timestamp
HISTTIMEFORMAT="%d/%m/%y %T "
screen and bash history
To make sure all screens write to same history (at least on CentOS and RHEL):
echo "history -a;history -r" > /etc/sysconfig/bash-prompt-screen chmod +x /etc/sysconfig/bash-prompt-screen
In general:
export PROMPT_COMMAND='history -n'
or
export PROMPT_COMMAND="history -a; history -c; history -r; ${PROMPT_COMMAND}"
functions
function foo() { echo $1 $2 }
Check if disk is mounted
mountpoint /mnt/foo