Bash: expansion

#!/bin/bash                                                                                                                                                                                                     
echo START
# brace expansion                                                                                                                                                                                               
echo {John,Betty,Robert}@windriver.com
# tidle expansion                                                                                                                                                                                               
echo MyDir=~
# command substitution                                                                                                                                                                                          
cwd=$(pwd)
# straight parameter expansion                                                                                                                                                                                  
echo ${cwd}
# indirect parameter expansion                                                                                                                                                                                  
var=foo
foo=bar
bar=another
echo ${var}                     # print foo                                                                                                                                                                     
echo ${!var}                    # print bar                                                                                                                                                                     
# arithmetic expansion                                                                                                                                                                                          
var=1
echo $(($var+1))                # print 2                                                                                                                                                                       
# parameter expansion with default value                                                                                                                                                                        
echo ${var:-default}
echo ${uvar:-default}           # print default                                                                                                                                                                 
echo ${uvar}                    # print nothing                                                                                                                                                                 
# parameter expansion with defaul value assigning                                                                                                                                                               
echo ${uvar:=default}
echo ${uvar}
# substring expansion ${var:offset:length}                                                                                                                                                                      
echo ${cwd:4}
echo ${cwd:4:5}
# names mathcing prefix                                                                                                                                                                                         
echo ${!v*}                     # output var                                                                                                                                                                    
# parameter length                                                                                                                                                                                              
echo ${#*}
echo ${#cwd}
# remove matching prefix pattern                                                                                                                                                                                
fake_base_dir=${cwd#/*/}        # shortest matching pattern                                                                                                                                                     
echo ${fake_base_dir}
base_dir=${cwd##/*/}            # longgest matching pattern                                                                                                                                                     
echo ${base_dir}
# remove matching suffix pattern                                                                                                                                                                                
parent_dir=${cwd%/*}
echo ${parent_dir}
empty_dir=${cwd%%/*}
echo ${empty_dir}
# pattern substitution ${para/pattern/string}                                                                                                                                                                   
echo ${cwd/\/*\//SUBSTRING}
echo ${cwd/\/*\//}              # same effect with ${cwd##/*/}                                                                                                                                                  
# case modification                                                                                                                                                                                             
var='HELLO WORLD hello world'
echo ${var^[hello]}
echo ${var^^[hello]}
echo ${var,[HELLO]}
echo ${var,,[HELLO]}
echo ${var^^}
echo ${var,,}
echo END

# for more detailed usage, refer to bash manual

转载于:https://my.oschina.net/u/158589/blog/80735

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值