Linux设置字符串变量,linux中对shell变量内容的修改和替换

鸟哥私房菜中,对这一内容的描述,简直让人看不懂,好不容易找来文章可以帮助理解下。

linux中对shell变量内容的修改和替换

1.变量内容修改 file=/dir1/dir2/dir3/my.file.txt 可以用 ${ } 分别替换获得不同的值: ${file#*/}: 拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt ${file##*/}:拿掉最后一条 / 及其左边的字符串:my.file.txt ${file#*.}: 拿掉第一个 . 及其左边的字符串:file.txt ${file##*.}:拿掉最后一个 . 及其左边的字符串:txt ${file%/*}: 拿掉最后条 / 及其右边的字符串:/dir1/dir2/dir3 ${file%%/*}:拿掉第一条 / 及其右边的字符串:(空值) ${file%.*}: 拿掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file ${file%%.*}:拿掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my ${file/.txt/.cpp} 将.txt取代为.cpp:/dir1/dir2/dir3/my.file.cpp 2.有条件的变量替换 ${variable: -value} 变量替换时将使用命令行中定义的默认值,但变量的值并没有因此而改变。 例:$echo Hello $UNAME 结果显示:Hello $echo Hello ${UNAME: -there} 结果显示:Hello there $echo $UNAME 结果显示: (空) $UNAME=John $echo Hello ${UNAME: -there} 结果显示:Hello John ${variable:=value} 不但使用默认值进行替换,而且将默认值赋给该变量。该形式在变量替换后同时把值value符给变量variable。 例:$echo Hello $UNAME 结果显示:Hello $echo Hello ${UNAME:=there} 结果显示:Hello there $echo $UNAME 结果显示:there ${variable: +value} 只有当变量已赋值时才用指定值替换,变量variable已赋值时,其值才用value替换,否则不进行任何替换。 例:$ERROPT=A $echo ${ERROPT: +"Error tracking is acitive"} 结果显示:Error tracking is acitive $ERROPT= $echo ${ERROPT: +"Error tracking is acitive"} 结果显示: (空) ${variable:?message} 使用错误检查的条件进行变量替换,当变量variable已设置时,正常替换。 例:$UNAME= $echo $ {UNAME:?"UNAME HAS NOT BEEN SET"} 结果显示:UNAME HAS NOT BEEN SET $UNAME=Stephanie $echo ${UNAME:?"UNAME HAS NOT BEEN SET"} 结果显示:Stephanie 3.在操作中的使用 集体增加后缀 find . ! -type d |xargs -i mv {} {}.c; find . ! -type d -exec mv -f {} {}.suf \; 把*.txt 变成 *.cpp 方法一 for file in `find ./ -name "*.txt" -type f`;do mv $file ${file%.*}.cpp;done 方法二 rename .txt .cpp *.txt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值