Bash 内置函数及其它
来源:互联网 发布:怎样设计淘宝店铺 编辑:程序博客网 时间:2024/05/29 18:25
一: bash 字符串操作:
例: FILE_NAME="/usr/local/world.txt"
1. 取字符串长度
${#FILE_NAME}
2. 取子串
3. 删除字符串(匹配)
${FILE_NAME##*/} #删除从左开始到/ 止的所有字符, 最大匹配
${FILE_NAME#*/} #删除从左开始到/ 止的所有字符, 最小匹配
${FILE_NAME%%/*} #删除从右开始到左/ 止的所有字符,最大匹配
4. 替换字符串 (也使用匹配操作)
${FILE_NAME/world.txt/hello.txt} # 将world.txt 替换成hello.txt
${FILE_NAME//w/W} # 将w 全部换成 W
${string:position} 在$string中, 从位置$position开始提取子串
${string:position:length} 在$string中, 从位置$position开始提取长度为$length的子串
${string#*substring} 从变量$string的开头, 删除最短匹配$substring的子串
${string##*substring} 从变量$string的开头, 删除最长匹配$substring的子串
${string%*substring} 从变量$string的结尾, 删除最短匹配$substring的子串
${string%%*substring} 从变量$string的结尾, 删除最长匹配$substring的子串
${string/substring/replacement} 使用$replacement, 来代替第一个匹配的$substring
${string//substring/replacement} 使用$replacement, 代替所有匹配的$substring
$#, $1,$2,$3
枚举命令行参数: for a in $@ { echo $a; }
----------------------------------------
三:执行bash如何让命令回显?
bash -v test.sh
或#!/bin/bash -v
四: bash 输出等宽数字到变量
例: FILE_NAME="/usr/local/world.txt"
1. 取字符串长度
${#FILE_NAME}
2. 取子串
${FILE_NAME:10} #从位置10开始取字串
$(FILE_NAME:5:10} #从位置5开始,取10个字符
3. 删除字符串(匹配)
${FILE_NAME##*/} #删除从左开始到/ 止的所有字符, 最大匹配
${FILE_NAME#*/} #删除从左开始到/ 止的所有字符, 最小匹配
${FILE_NAME%%/*} #删除从右开始到左/ 止的所有字符,最大匹配
${FILE_NAME%/*} #删除从右开始到左/ 止的所有字符,最小匹配
关键是理解#,%,*元字符的作用,#是左,%是右开始,*多字符匹配。
上面那个/是普通的字符。不要混淆。
另见例子:
${FILE_NAME#*local}, ${FILE_NAME##*local}
${FILE_NAME%*local} ${FILE_NAME%%*local}
4. 替换字符串 (也使用匹配操作)
${FILE_NAME/world.txt/hello.txt} # 将world.txt 替换成hello.txt
${FILE_NAME//w/W} # 将w 全部换成 W
/元字符是查找替换之意
对应的函数原型为:
${string:position} 在$string中, 从位置$position开始提取子串
${string:position:length} 在$string中, 从位置$position开始提取长度为$length的子串
${string#*substring} 从变量$string的开头, 删除最短匹配$substring的子串
${string##*substring} 从变量$string的开头, 删除最长匹配$substring的子串
${string%*substring} 从变量$string的结尾, 删除最短匹配$substring的子串
${string%%*substring} 从变量$string的结尾, 删除最长匹配$substring的子串
${string/substring/replacement} 使用$replacement, 来代替第一个匹配的$substring
${string//substring/replacement} 使用$replacement, 代替所有匹配的$substring
可见, bash 内置函数,其函数名称,输入参数,调用方法,返回值与|C 非常不同。
它用了一种更简单的书写方式。
用echo 命令可以实验
${var:-} 附缺省值, 不传递给子shell
${var:=}赋缺省值,传递给子shell
$(var:?} 检查变量是否存在,
$(var:+), 变量覆盖,但原变量的值并不会改变。
${var:n:m} 取字串,前面有例子
$(var} (%,#,%%,##)操作根据模板删除字串,前面说过
(//) 字符串替换,前面说过。
$#, $1,$2,$3
枚举命令行参数: for a in $@ { echo $a; }
----------------------------------------
三:执行bash如何让命令回显?
bash -v test.sh
或#!/bin/bash -v
-x 执行前打印
-n 只运行不执行
四: bash 输出等宽数字到变量
printf -v str "%06d\n" 15
----------------------------------------
其它: bash 替换字符串中的/为空格, 还得借助sed 才比较方便:
echo $FILE_NAME |sed 's#/# #g'
- Bash 内置函数及其它
- FreeMarker内置函数及其用法
- Python内置函数及其用法
- 【python】序列及其内置函数
- Android内置颜色及其它颜色RGB对照表
- pthread_join函数及其它线程终止函数
- mod_timer函数及其它定时器函数
- 有用的函数-文件处理及其它
- PHP 常用函数及其它功能
- Hive常见内置函数及其使用
- Hive常见内置函数及其使用
- Entity SQL Language六 数字函数、时间函数及其它
- python内置映射类型(mapping type):dict哈希字典遍历方式及其它用法举例
- JSP内置对象值out对象及其它的一些常见方法
- Python类,实例及其它对象的内建函数
- bash 内置变量
- Bash内置命令
- BASH中的内置变量
- SGU223 状态压缩DP
- gridcontrol根据条件设置grid颜色显示
- linux平台开发有用的一些知识点. 持续更新.
- [winphone][C#] RSA加密与解密
- mongodb linq查询
- Bash 内置函数及其它
- mysql高性能学习笔记整理
- 工作两年~跌跌撞撞
- android下ListView的奇异异常大集合(持续更新)
- 【分治】求逆序对个数并打印逆序对
- 快速排序的时间复杂度计算
- SharePoint 2010新手入门
- android--------listView 分段加载数据
- js 删除数组中的重复项