Shell
taesimple
这个作者很懒,什么都没留下…
展开
-
Shell脚本练习笔记
1.用命令whoami 可得到当前登录的用户名2.命令date获得当前日期、时间,cal获得当月日历3.打印美元符号$用转义/$4.再熟悉一下find命令原创 2011-04-01 20:17:00 · 95 阅读 · 0 评论 -
shell中的函数(function)
函数的定义格式如下:func_name () { #格式1 command 1 ... command n return RV #可选,若无return则以最后一条command的执行状态(True或者False)作为返回值}或function func_name { #格式2 command 1 ... command n return R原创 2012-04-20 20:32:31 · 351 阅读 · 0 评论 -
echo,read,cat,tee,重定向以及管道
echoecho的常用参数:-n:取消缺省的换行符-e:启用\的特殊转义功能,此时\n代表换行(默认特殊转义功能是关闭的)-E:关闭\的特殊转义功能例子:echo "hello world"echo -ne "hello world\n"二者效果一样readread命令:通过键盘输入给变量赋值,常用参数有:-p:增加提示语-t:设置超时,若超时原创 2012-04-17 22:03:39 · 652 阅读 · 0 评论 -
wildcard和regular expression
wildcard1.准确地讲,wildcard是一种命令行的路径扩展功能,这与变量替换$和命令替换$( )是类似的,也就是命令行先对wildcard进行替换,再执行。牢记:wildcard只是作用于argument里的path部分2.常见的wildcard:*:匹配0或多个任意字符?:匹配单个任意字符[xyz]:匹配xyz中任意一个字符(必须有且只能有一个)[!xyz]:匹配除xy原创 2011-04-06 14:09:00 · 683 阅读 · 0 评论 -
对subshell和环境变量的一些分析
首先搞清楚一个流程:运行一个script,实际上是先启动一个subshell,然后在这个subshell中执行该script的内容由上述流程引出一个问题:shell中的变量能否继承给subshell?这就引出两个概念:本地变量(local variable)和环境变量(envrionment variable)本地变量:不能继承给subshell,在shell中定义的且未被expo原创 2012-04-22 15:49:04 · 257 阅读 · 0 评论 -
shell中的meta
shell中的metaIFS :包括Space,Tab和EnterCR:Enter= :设定变量$ :变量替换${ }或命令行替换$( )> :输出流重定向| :管道& :文件描述符重定向(如 2>&1); :在一个command结束时,忽略其返回值,继续执行下一个command( ) :command group(在subshell中执行),或命令行替换$( ),或数字运算$(( )),原创 2012-04-22 15:41:08 · 236 阅读 · 0 评论 -
shell对command的处理流程分析
一些基本概念CR(Carriage Return):命令行读进,由Enter产生(但不是所有Enter都能产生CR,譬如加了反斜杠\进行转移的Enter)prompt:提示符command:命令行,prompt到CR之间的部分IFS(Internal Field Separator):栏位分隔符,由一个或多个下列按键组成Space:空格键Tab:制表符Enter:回车键原创 2012-04-22 15:32:31 · 182 阅读 · 0 评论 -
shell中的循环结构
shell中的循环结构有:for,while和until(while和until的语法结构、设计思路基本一致,因此归为一类讨论)forfor循环有两种形态:1.列表形态,形如:for var in varlist; do command 1 ... command ndone其思路是:用var依次读取varlist中的各元素,因此循环次数取决于va原创 2012-04-22 13:53:55 · 276 阅读 · 0 评论 -
shell中的测试条件
shell中的测试条件有三种:test,[ ]以及(( ))。其中test和[ ]是等价的(test -z str 等价于 [ -z str ]),因此将二者归为一类讨论[ ]1.[ ]的测试对象有三种:字符串 ,如[ -z str ]数字,如[ n1 -lt n2 ]文件,如[ -f filename ]2.中括号内的变量,最好用双引号包括; 中括号内的常量,最好用单原创 2012-04-20 16:15:25 · 215 阅读 · 0 评论 -
$( ),${ }和$(( ))
$( )$( )在功能上和` `基本一样,都是先运行包含在其中的命令。区别在于两点:1.` `嵌套时内层需要转义,如command1 `command2 /`command3/` `2.$( )兼容性相对差一点(bash和sh上完全可以使用)${ }1.${ }一般情况下就是取变量值,和$差不多。但前者可以精确界定变量名称的范围,这在添加变量内容时非常有用,原创 2011-04-05 10:47:00 · 389 阅读 · 0 评论 -
shell中单双引号和IFS、CR的关系
1.IFS(Internal Field Separator):IFS是shell预设的分隔符,默认为Space、Tab以及Enter CR(Carriage Return):一般为Enter。CR告诉shell一条命令输入结束,开始执行 2.shell会依据IFS来将command-line的文字拆解为word,然后再针对meta(特殊字符)先做处理,最后再重组整行command原创 2011-04-04 14:11:00 · 188 阅读 · 0 评论 -
find命令
find命令用于查找指定文件(只能查找文件,若要查找文件内容用grep)find常用参数-name:按文件名查找(文件名最好用双引号包括,否则容易和通配符冲突)-type:按类型查找(f:文件,d:目录,l:链接,...)-perm:按权限查找(-perm 644,-perm +7:匹配ugo均为7,-perm -7:匹配ugo任意至少一个为7)-user:按所属用户查找-gr原创 2012-04-17 14:38:51 · 228 阅读 · 0 评论 -
awk
什么是awkawk类似于sed,也是一种非交互式的文本编辑器与sed的相同点:awk也是逐行读入,逐行处理awk只是将其处理结果送至stdout,不会修改任何输入文件与sed的不同点:sed一般以整行为处理对象;而awk更善于处理分成多个逻辑“字段”的文本,即awk以“字段”为处理对象awk的一般格式awk [option] 'awk command原创 2012-04-23 20:10:17 · 209 阅读 · 0 评论 -
sed
什么是sedsed是stream editor的缩写,是一个非交互式的文本编辑器sed是基于行的sed逐行读入,逐行操作sed只是将其处理结果送至stdout,因此不会修改任何输入文件sed的一般格式sed [option] '[sed command]' [file]1.option即sed的参数,常用的有:-n :使用安静模式,只将经过sed原创 2012-04-22 23:52:30 · 227 阅读 · 0 评论 -
子shell和source命令
在脚本1.sh中输入如下内容: cd /etc 然后运行命令 ./1.sh (假设当前目录为/home/tae)发现工作目录并没有发生变化,这是因为我们执行一个shell脚本时,实际上是先产生了一个子shell,然后在子原创 2011-04-04 22:03:00 · 92 阅读 · 0 评论 -
用awk数组处理的几个例子及学习心得
例子转自http://bbs.chinaunix.net/viewthread.php?tid=577044&extra=page%3D1%26filter%3Ddigest 1、用某一文件的一个域替换另一个文件中的的特定域? http://bbs.chinaunix.net/forum/viewtopic.php?t=500015 文件passwd原创 2011-04-02 15:57:00 · 637 阅读 · 0 评论