shell脚本学习第四天——bash内部变量,变量主串,变量替换
一、bash内部变量:常见的内部命令:echo,eval,exec,export,readonly,read,shift,wait,exit和点(.)也就是source命令。
1、eval:一个eval只能使shell对参数多一次处理,因此有几个eval就可以多加几次。 2、shift3、readonly4、exec执行完后直接退出系统。 二、变量主串:export name="i am yangni"
echo ${#name}
echo ${name:2}
echo ${name:2:3}
echo ${name#i am}
echo ${name%ni}
echo ${name/yang/chun}
应用实例:
for f in ` ls *.c` //设置f的值
do
mv $f `echo ${f/yangni/qicheng}`
done
当然还有更简单的方法,那就是rename
三、变量替换:1、${value:-word} 判断变量是否定义result=${test : -UNSET} :如果变量test定义了,显示test内容。如果test未定义,打印UNSET(一个字符串) //test未定义:
[yangni@centos6 abc]$ result=${test:=UNSET}
[yangni@centos6 abc]$ echo $result
UNSET
//test定义:
[yangni@centos6 abc]$ test=3
[yangni@centos6 abc]$ result=${test:=UNSET}
[yangni@centos6 abc]$ echo $result
3
2、${value:word} 若变量value未定义,将word赋值给value,确保变量始终有值。result=${test :=UNSET} :变量未定义,将字符串UNSET赋值给test [yangni@centos6 abc]$ unset test
[yangni@centos6 abc]$ result=${test:=UNSET}
[yangni@centos6 abc]$ echo $test //test未定义,将UNSET赋值给它
UNSET
${value-word}类似于2,变量value不存在用word替代。 1./etc/init.d/httpd 每日编程练习:#!/bin/sh
result=1
while [ $# -gt 0 ]
do
result=`expr $result * $1`
shift
done
echo $result
用shift实现所有参数的乘积。注意,乘号要用转义字符转义,不然会报错。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- twitter-bootstrap – Twitter Bootstrap 2.x连续多个分组下
- 在bash中查找以extension扩展名结尾的所有文件
- angularjs – 检测angular.js和ng-grid中的单元格变化
- angularjs – 自定义元素复制ng-repeat内的内容
- shell expect自动化创建用户,修改密码,多台机器一键免秘钥
- angular – 如何通过代码扩展PrimeNg TreeTable
- Ionic / AngularJS:如何从表单本地保存数据?
- bash – 编写shell脚本以上午或下午表示法显示时间
- Bootstrap 库
- 在bash中设置从命名管道读取的管道而不阻塞