设为首页 加入收藏

TOP

Shell 脚本常用命令(一)
2017-10-16 18:18:53 】 浏览:7499
Tags:Shell 脚本 常用 命令

  Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。 

  1 、Shell中的特殊符号

  1.1   $  美元符号。用来表示变量的值。如变量NAME的值为Mike,则使用$NAME就可以得到“Mike”这个值。

  1.2   #  井号。除了做为超级用户的提示符之外,还可以在脚本中做为注释的开头字母,每一行语句中,从#号开始的部分就不执行了。

  1.3   “”  双引号。shell不会将一对双引号之间的文本中的大多数特殊字符进行解释,如#不再是注释的开头,它只表示一个井号“#”。但$仍然保持特殊含义。(在双引号中的$加变量名,即:$PARAM_NAME,依然会转换成变量的值。)

  1.3.1     双引号对于某些特殊符号是不起作用的, 例如:”,$,\,`(反引号)

  1.3.2     双引号和单引号不能嵌套。即:echo ‘””’  输出””,  echo “’’” 输出’’

  1.4    ‘’  单引号。shell不会将一对单引号之间的任何字符做特殊解释。(在单引号中的$加变量名,即:$PARAM_NAME,不会转换成变量的值。)

  1.4.1     echo “$HOME”    (结果:/home/xiongguoan)

  1.5    ``  倒引号。命令替换。在倒引号内部的shell命令首先被执行,其结果输出代替用倒引号括起来的文本,不过特殊字符会被shell解释。

  1.5.1     echo ‘$HOME’    (结果:$HOME)

  1.6        \  斜杠。用来去掉在shell解释中字符的特殊含义。在文本中,跟在\后面的一个字符不会被shell特殊解释,但其余的不受影响。

  1.7        []中括号, 主要是用来测试条件的,通常放在if语句的后面。 (不过还是不太明白),但是中括号本身不会在测试语句执行后消失。

  1.7.1     echo [$HOME]   (结果:出现错误)

  1.7.2     echo [$HOME ]   (结果:[/home/xiongguoan ]) (注意:HOME后面有空格哦。)

  1.7.3     echo [$HOME –eq ‘/xiong’]  (结果:[/home/xiongguoan –eq /xiong])

     1.8       {}大括号,主要是和$符号配合,作为字符串连接来使用

  1.8.1     echo ${HOME}ismydir   (结果:/home/xiongguoanismydir)

  2、 预定义的变量

  2.1  特殊变量

$      shell变量名的开始,如$var
|      管道,将标准输出转到下一个命令的标准输入
$#     记录传递给Shell的自变量个数
#      注释开始
&      在后台执行一个进程
? 匹配一个字符
* 匹配0到多个字符(与DOS不同,可在文件名中间使用,并且含.) $- 使用set及执行时传递给shell的标志位 $! 最后一个子进程的进程号 $? 取最近一次命令执行后的退出状态(返回码) $* 传递给shell script的参数 $@ 所有参数,个别的用双引号括起来 $0 当前shell的名字 $n (n:1-) 位置参数 $$ 进程标识号(Process Identifier Number, PID) > 输出重定向 < 输入重定向 >> 输出重定向(追加方式) [] 列出字符变化范围,如[a-z]

  2.2  代值变量

* 任意字符串 
? 一个任意字符 
[abc] a, b, c三者中之一 
[a-n] 从a到n的任一字符 

  2.3  特殊字符的表达

\b 退回  
\c 打印一行时没有换行符 这个我们经常会用到  
\f 换页  
\r 回车  
\t 制表  
\v 垂直制表  
\\ 反斜线本身 

  2.4  其他字符

  2.4.1 分号 ;  表示一行结束

  2.4.2    圆括号  () 表示在新的子shell中执行括号内的命令(这样可以不改变当前shell的状态。)但是圆括号在单/双引号内失去作用,只作为普通字符。

  2.4.3    花括号

  2.4.3.1    分割命令的用法

    与圆括号相似,但是:1. 花括号内的命令在当前shell中执行;2.花括号必须作为命令的第一个字符出现。

    2.4.3.2    引用变量的用法

    在$后面,表示变量名的开始和结束

    2.4.4     方括号

    相当与test命令,用来执行测试条件,通常用在需要判断条件的语句后面,例如:if,while等等。

  3、设置变量

  3.1  格式:VARNAME=value (i.e. PARAM=’hello’)

  3.2  注意:等号的前后不能有空格。如果变量的值是一个命令的执行结果,请加上反引号(`)。

  4、引用变量

  4.1  $VARNAME

  4.1.1     e.i.  echo $HOME   (结果:/home/xiongguoan)

  4.2   变量默认值

  4.2.1     在引用一个变量的时候可以设定默认值。如果在此之前,该变量已经设定了值,则此默认值无效。如果此时变量没有被设定值,则使用此默认值(但是没有改变此变量的值)。

  4.2.2     echo Hello ${UNAME:-there}     #其中there是UNAME的默认值

  4.2.3     其他关于默认值与判读变量的方法:

  利用大括号表示变量替换

表示形式

说明

${VARIABLE}

基本变量替换。大括号限定变量名的开始和结束

${VARIABLE:-DEFAULT}

如果VARIABLE没有值,则这种表示形式返回DEFAULT的值

${VARIABLE:=DEFAULT}

如果VARIABLE没有值,则这种表达形式返回DEFAULT的值。另外,如果VARIABLE没有设置,则把DEFAULT的值赋予它

${VARIABLE:+VALUE}

如果VARIABLE被设置,则

首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇centos7下git安装及使用(Capistr.. 下一篇在ubuntu16.04中一键创建LAMP环境

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目