您的位置:首页 > 运维架构 > Linux

初次学习linux脚本文件笔记

2013-11-22 18:30 316 查看
单引号和双引号:单引号和双引号都能关闭shell对特殊字符的处理。不同的是,双引号没有单引号严格,单引 号关闭所有有特殊作用的字符,而双引号只要求shell忽略大多数,具体的说,就是①$美元符号②`反引号③/反斜杠,这3种特殊字符不被忽略。 不忽略美元符号意味着shell在双引号内部也进行变量名替换。

条件测试空格问题:通常用" [ ]"来表示条件测试。注意这里的空格很重要。要确保方括号的空格,例如:[(空格) -f "somefile"(空格) ],如果没有空格会报错

脚本中的数据类型

类型声明指令declare

1) i、a、f、r分别用来声明整数,数组,函数,只读类型变量

2) 默认情况下是字符和字符串类型

3) 脚本语言是弱类型语言

for语句

有两种形式

1)

  For var in 1 2 3 4 5 6;do

     添加自己的语句

  Done

2)

  For((i=0;i<100;i=i+1))//注意这里必须有两对括号,其中i为整型

  Do

    添加自己的语句

  done

help documets问题

当要将几行文字传递给一个命令时,here documents(译者注:目前还没有见到过对该词适合的翻译)一种不错的方法。对每个脚本写一段帮助性的文字是很有用的,此时如果我们四有那个 here documents就不必用echo函数一行行输出。 一个 "Here document" 以 << 开头,后面接上一个字符串,这个字符串还必须出现在here document的末尾。

cat <<HELP

ren -- renames a number of files using sed regular expressions

USAGE: ren 'regexp' 'replacement' files...

EXAMPLE: rename all *.HTM files in *.html:

 ren 'HTM$' 'html' *.HTM

HELP

要注意的是这些字符串要在两个HELP之间,同时也不必一定是HELP,取其它名字也可以

传递的参数问题

$0,$1…….$n代表这是第n个参数,其中$0表示脚本本身名字

比如:终端中输入./test my name is



$0 表示 ./test

$1 表示 my

$2 表示name

$3表示 is

还有就是

#” 代表位置参数的数量 $#

*” 代表所有的位置参数 $*

继续如上面的终端输入,则$#为3,$*表示my name is
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: