Chinaunix首页 | 论坛 | 博客
  • 博客访问: 686815
  • 博文数量: 94
  • 博客积分: 3369
  • 博客等级: 中校
  • 技术积分: 1144
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
文章分类

全部博文(94)

文章存档

2014年(1)

2013年(1)

2012年(65)

2011年(20)

2009年(7)

我的朋友

分类: Python/Ruby

2012-02-20 13:16:36

1 shell参数
如同ls 命令可以接受目录等作为它的参数一样,在CentOS shell时同样可以使用参数。Shell有位置参数和内部参数。

1、位置参数
由系统提供的参数称为位置参数。位置参数的值可以用$N得到,N是一个数字,如果为1,即$1.类似C语言中的数组,会把输入的命令字符串分段并给每段进行标号,标号从0开始。第0号为程序名字,从1开始就表示传递给程序的参数。如$0表示程序的名字,$1表示传递给程序的第一个参数,以此类推。

2、内部参数
上述过程中的$0是一个内部变量,它是必须的,而$1则可有可无。和$0一样的内部变量还有以下几个。
$#  ----传递给程序的总的参数数目
$?  ----上一个代码或者CentOS shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
$*  ----传递给程序的所有参数组成的字符串。

3 把一个文件中以#开头的行去掉,并且去掉空行:

cat xxx | grep -v '^#' | grep '^$'

4 Vim把文档中某个字符替换:
要将某个文件中的 Vim 全部替换成 VIM,则可以使用这样的命令::%s/Vim/VIM/g

5  以某字符开头的匹配:

#如果$a以”a”开头(模式匹配)那么将为true    

if [[ "$A" == a* ]];then   

echo "[[ ==a* ]]"   

fi   

awk的值输出给多个变量赋值的方法:

Read a b c < <(awk print命令)

第一个<是重定向<(cmds)bash进程替代(Process Substitution),如果理解什么是命名管道,那么<(...)就是一个临时的命名管道
如果不理解,可以简单的看作bash产生一个/dev/fdxxx的文件,文件内容是cmds的标准输出

阅读(1424) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~