1.说明 ${parameter-default} --------如果变量parameter没被声明,那么就使用默认值
${parameter:-default} -------如果变量parameter没被设置,那么就使用默认值
filename=${1:-$DEFAULT_FILENAME}---------如果参数1没有设置,那么就取默认的DEFAULT_FILENAME
${parameter=default} ----如果变量parameter没声明,那么就把它的值设为default.
${parameter:=default} -----如果变量parameter没设置,那么就把它的值设为default.
${parameter+alt_value} ----如果变量parameter被声明,那么就是用alt_value,否则使用null字符串.
${parameter:+alt_value} -----如果变量parameter被设置,那么就是用alt_value,否则使用null字符串.
${parameter?err_msg} -----如果parameter已经被声明,那么就使用设置的值,否则打印err_msg错误消息.
${parameter:?err_msg} ----如果parameter已经被设置,那么就使用设置的值,否则打印err_msg错误消息.
冒号在linux中的使用
1、注释
: this is comment
: ' this is a multiple
lines comment.'
将注释作为参数传递给冒号命令, 因为没有输出所以可以当作注释阿,够巧妙吧。
2、清空文件
: > file
2.使用参数替换和错误消息
#! /bin/sh
: ${HOSTNAME?} ${USER?} ${HOME?} ${MAIL?}
echo
echo "Name of the machine is $HOSTNAME."
echo "You are $USER."
echo "Your home directory is $HOME."
echo "Your mail INBOX is located in $MAIL."
echo
echo "If you are reading this message,"
echo "critical environmental variables have been set."
echo
echo
ThisVariable=Value-of-ThisVariable
: ${ThisVariable?}
echo "Value of ThisVariable is $ThisVariable."
echo
echo
: ${ZZXy23AB?"ZZXy23AB has not been set."}
echo "You will not seen this message,because script already terminated."
HERE=0
exit $HERE
3.变量长度
${#array
E_NO_ARGS=65
if [ $# -eq 0 ]
then
echo "Please invoke this script with one or two command-line arguments."
exit $E_NO_ARGS
fi
var01=abcdEFGH28ij
echo "var01 = ${var01}"
echo "Length of var01 = ${#var01}"
var02="abcd EFGH28ij"
echo "var01 = ${var02}"
echo "Length of var02 = ${#var02}"
echo "Number of command-line arguments passed to script = ${#@}" -----参数个数
echo "Number of command-line arguments passed to script = ${#*}" -----参数个数
exit 0
4.参数替换中的模式匹配
#! /bin/sh
var1=abcd12345abc6789
pattern1=a*c
echo
echo "var1 = $var1"
echo "var1 = ${var1}"
echo "Number of characters in ${var1} = ${#var1}"
echo
echo "pattern1 = $pattern1"
echo "---------1--------"
echo '${var1#$pattern1} = ' "${var1#$pattern1}"
echo '${var##$pattern1} = ' "${var1##$pattern1}"
echo;echo;echo
pattern2=b*9
echo "var1 = $var1"
echo
echo "pattern2 = $pattern2"
echo "-------------------"
echo '${var1%pattern2} = ' "${var1%$pattern2}"
echo '${var1%%pattern2} = ' "${var1%%$pattern2}"
echo
exit 0
5.修改文件扩展名
#! /bin/sh
E_BADARGS=65
case $# in
0|1)
echo "Usage: `basename $0` old file suffix new file suffix"
exit $E_BADARGS
;;
esac
for filename in *.$1
do
mv $filename ${filename%$1}$2
done
exit 0
6.用模式匹配来解析任意字符串
#! /bin/sh
var1=abcd-1234-defg
echo "var1 = $var1"
t=${var1#*-*}
echo "var1 (with everything,up to and including first - strippedout) = $t"
t=${var1##*-*}
echo "If var1 contains a \"-\",returns empty string... var1=$t"
t=${var1%*-*}
echo "var1 (with everything from the last - on stripped out) = $t"
echo
path_name=/home/bozo/ideas/thoughts.for.today
echo "path_name=$path_name"
t=${path_name##/*/} ------截去最大匹配/*/
echo "path_name,stripped of prefixes = $t"
t=${path_name%/*.*} ------从尾部截去/*.*
echo "path_name,stripped of suffixes = $t"
echo
t=${path_name:11}
echo "$path_name,with first 11 chars stripped of = $t"
t=${path_name:11:5}
echo "$path_name,with first 11 chars stripped off,length 5 = $t"
echo
t=${path_name/bozo/clown}
echo "$path_name with \"bozo\" replaced by \"clown\" = $t"
t=${path_name/today/}
echo "$path_name with \"today\" delete = $t"
t=${path_name//o/O}
echo "$path_name with all o's capitalized = $t"
t=${path_name//o/}
echo "$path_name with all o's deleted = $t"
exit 0
7.对字符串的前缀和后缀使用匹配模式
${var/#pattern/replacement}----如果变量var的前缀匹配pattern,那么就是用replacement来替换匹配到的pattern字符串
${var/%pattern/replacement}----如果变量var的后缀匹配pattern,那么就是用replacement来替换匹配到的pattern字符串
#! /bin/bash
v0=abc1234zip1234abc
echo "v0 = $v0"
echo
v1=${v0/#abc/ABCDEF}
echo "v1 = $v1"
v2=${v0/%abc/ABCDEF}
echo "v2 = $v2"
echo
v3=${v0/#123/100}
echo "v3 = $v3"
v4=${v0/%123/100}
echo "v4 = $v4"
exit 0
发表评论
-
GCC后端及汇编发布(20)
2012-07-06 09:46 738DEFINE_INSN_RESERVATION模式的概览一 ... -
asp.net下集成(Active Messenger)AM消息发送组件
2012-07-03 13:44 1280Active Messenger是杭州恒创软件公司开发的一 ... -
Flex富文本编辑器(嵌入Fck)
2012-07-02 13:04 1022... -
(Flex)让Panel可拖动
2012-07-02 13:04 562height="300" mouseD ... -
flex 中Tree的数据由数组提供
2012-07-02 13:04 420flex/spark" xmln ... -
flex 事件触发篇
2012-07-02 13:04 573事件触发篇 完整代码 ... -
FLEX 条形图(柱状图)设置刻度为百分比
2012-07-02 13:04 1105作者原创,如需转载请注明出处:www.krzone.org ... -
[转]Flex中[Bindable]的用法
2012-07-01 10:37 624什么是元数据(metadata):[Bindable]大 ... -
Flex 动态datagrid的应用
2012-07-01 10:37 635Flex有2种常用的datagrid: ... -
FLEX与javascript交互
2012-07-01 10:37 587用Flex来调用同一页面中的javascript函数。调用 ... -
Flex + BlazeDS 学习笔记 (一) --- BlazeDS的功能原理及配置实例
2012-07-01 10:37 743BlazeDS Test Drive里面 ... -
页面中嵌入FLEX应用-传参
2012-06-30 17:01 662页面中嵌入FLEX应用-传参 2010年06月29日 项 ... -
用Parsley实现Flex Ioc的简单例子
2012-06-30 17:01 567用Parsley实现Flex Ioc的简单例子 2010年0 ... -
Flex嵌入jsp开发心得
2012-06-30 17:01 734Flex嵌入jsp开发心得 2010年07月02日 PM ... -
flex与数据库交互
2012-06-30 17:01 538flex与数据库交互 2010年07月04日 Flex最 ...
相关推荐
网上很多办法,虽然是对的,用起来结果不对。这里提供正确办法。 去掉开头的空格 $text= 123 456 ...# 删除字符串中所有空格 sed 's/[[:space:]]//g' 当然还有简单办法: # 只替换一个 text=${text/ /-} #
入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不...
9.2. 操作字符串 9.3. 参数替换 9.4. 指定类型的变量:declare 或者typeset 9.5. 变量的间接引用 9.6. $RANDOM: 产生随机整数 9.7. 双圆括号结构 10. 循环和分支 10.1. 循环 10.2. 嵌套循环 10.3. 循环控制 10.4. ...
1.替换文件中的字符串 $sed -i ‘s/text/replace/g’ file #如果不加g结尾,则替换每一行的第一个 #如果只是打印,去掉-i 2.忽略前N处匹配,从N+1出开始替换 $sed -i ‘s/text/replace/2g’ file #在g前面加入数字N ...
使用模式匹配来分析比较特殊的字符串 9-20. 对字符串的前缀或后缀使用匹配模式 9-21. 使用declare来指定变量的类型 9-22. 间接引用 9-23. 传递一个间接引用给awk 9-24. 产生随机数 9-25. 从一副扑克牌中取出一张...
10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 处理控制字符 99 10.10.2 处理报文输出 101 ...
10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 处理控制字符 99 10.10.2 处理报文输出 101 ...
10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 处理控制字符 99 10.10.2 处理报文输出 101 ...
• 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • 集成的浏览器 基于开源的 WebKit 引擎 • 优化的图形库 包括定制的 2D 图形库, 3D 图形库基于 OpenGL ES 1.0 ...
10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 处理控制字符 99 10.10.2 处理报文输出 101 ...
2.增强型的字符串的查找与替换 3.从字符串数组中删除指定元素 4.字符串倒置 三.VB常用技巧 1.打开默认的浏览器 2.获取驱动器卷标 3.总在最前型窗口 4.目录浏览对话框 5.Shell的相关问题 6.使用回收站 7.启动...
10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 处理控制字符 99 10.10.2 处理报文输出 101 ...
10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 处理控制字符 99 10.10.2 处理报文输出 101 ...
10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 处理控制字符 99 10.10.2 处理报文输出 101 ...
10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 处理控制字符 99 10.10.2 处理报文输出 101 ...
当我还在学习shell脚本编程的时候,我会经常参考一些由别人编写出来的实例,以进一步地扩展自己的视野。而结果往往是我发现一些正在困扰着自己的问题,我的同事和朋友们却早已发明了又酷又聪明的解决方案。因此,我...
10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 处理控制字符 99 10.10.2 处理报文输出 101 ...
10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 处理控制字符 99 10.10.2 处理报文输出 101 ...