Merge pull request #3043 from mn113/master

[bash/en] Add string length & regex code
This commit is contained in:
Divay Prakash 2018-10-24 11:35:38 +05:30 committed by GitHub
commit ff7f2b7d41
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -16,6 +16,7 @@ contributors:
- ["Betsy Lorton", "https://github.com/schbetsy"] - ["Betsy Lorton", "https://github.com/schbetsy"]
- ["John Detter", "https://github.com/jdetter"] - ["John Detter", "https://github.com/jdetter"]
- ["Harry Mumford-Turner", "https://github.com/harrymt"] - ["Harry Mumford-Turner", "https://github.com/harrymt"]
- ["Martin Nicholson", "https://github.com/mn113"]
filename: LearnBash.sh filename: LearnBash.sh
--- ---
@ -74,8 +75,13 @@ echo ${Variable/Some/A} # => A string
# Substring from a variable # Substring from a variable
Length=7 Length=7
echo ${Variable:0:$Length} # => Some st echo ${Variable:0:Length} # => Some st
# This will return 7 characters of the string, starting from the first char # This will return only the first 7 characters of the value
echo ${Variable: -5} # => tring
# This will return the last 5 characters (note the space before -5)
# String length
echo ${#Variable} # => 11
# Default value for variable # Default value for variable
echo ${Foo:-"DefaultValueIfFooIsMissingOrEmpty"} echo ${Foo:-"DefaultValueIfFooIsMissingOrEmpty"}
@ -174,6 +180,16 @@ then
echo "This will run if $Name is Daniya OR Zach." echo "This will run if $Name is Daniya OR Zach."
fi fi
# There is also the =~ operator, which tests a string against a Regex pattern:
Email=me@example.com
if [[ "$Email" =~ [a-z]+@[a-z]{2,}\.(com|net|org) ]]
then
echo "Valid email!"
fi
# Note that =~ only works within double [[ ]] square brackets,
# which are subtly different from single [ ].
# See http://www.gnu.org/software/bash/manual/bashref.html#Conditional-Constructs for more on this.
# Redefine command 'ping' as alias to send only 5 packets # Redefine command 'ping' as alias to send only 5 packets
alias ping='ping -c 5' alias ping='ping -c 5'
# Escape alias and use command with this name instead # Escape alias and use command with this name instead