加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

这些必备的Linux shell知识你都掌握了吗

发布时间:2019-06-11 20:14:56 所属栏目:Windows 来源:守望先生
导读:副标题#e# 前言 在linux下使用shell编程常常能够极大简化我们的工作。而下面这些必备的知识你是否都掌握了呢? 入参和默认变量 对于shell脚本而言,有些内容是专门用于处理参数的,它们都有特定的含义,例如: /home/shouwang/test.shpara1para2para3 $0$1$
副标题[/!--empirenews.page--]

这些必备的Linux shell知识你都掌握了吗

前言

在linux下使用shell编程常常能够极大简化我们的工作。而下面这些必备的知识你是否都掌握了呢?

入参和默认变量

对于shell脚本而言,有些内容是专门用于处理参数的,它们都有特定的含义,例如:

  1. /home/shouwang/test.sh para1 para2 para3  
  2. $0                      $1    $2    $3  
  3. 脚本名              第一个参数      第三个参数 

其中$0代表了执行的脚本名,$1,$2分别代表了第一个,第二个参数。除此之外,还有一些其他的默认变量,例如:

  1. #  代表脚本后面跟的参数个数,前面的例子中有3个参数  
  2. $@  代表了所有参数,并且可以被遍历  
  3. $*  代表了所有参数,且作为整体,和$*很像,但是有区别  
  4. $$  代表了当前脚本的进程ID  
  5. $?  代表了上一条命令的退出状态 

变量

给变量赋值,使用等号即可,但是等号两边千万不要有空格,等号右边有空格的字符串也必须用引号引起来:

  1. para1="hello world"  #字符串直接赋给变量para1 

unset用于取消变量。例如:

  1. unset para1 

如何使用变量呢?使用变量时,需要在变量前加$,例如要打印前面para1的内容:

  1. echo "para1 is $para1"  
  2. #将会输出 para1 is hello world 

或者变量名两边添加大括号:

  1. echo "para1 is ${para1}!"  
  2. #将会输出 para1 is hello world! 

命令执行

在shell中执行命令通常只需要像在终端一样执行命令即可,不过,如果想要命令结果打印出来的时候,这样的方式就行不通了。因此,shell的命令方式常有:

  1. a=`ls`   #`是左上角~键,不是单引号 

或者使用$,后面括号内是执行的命令:

  1. echo "current path is $(pwd)"   # 

另外,前面两种方式对于计算表达式也是行不通的,而要采取下面的方式:

  1. echo "1+1=$((1+1))"  #打印:1+1=2 

即$后面用两重括号将要计算的表达式包裹起来。

那如果要执行的命令存储在变量中呢?前面的方法都不可行了,当然括号内的内容被当成命令执行还是成立的。要使用下面的方式,例如:

  1. a="ls"  
  2. echo "$($a)" 

但是如果字符串时多条命令的时候,上面的方式又不可行了,而要采用下面的方式:

  1. a="ls;pwd"  
  2. echo "$(eval $a)"v 

这是使用了eval,将a的内容都作为命令来执行。

条件分支

一般说明,如果命令执行成功,则其返回值为0,否则为非0,因此,可以通过下面的方式判断上条命令的执行结果:

  1. if [ $? -eq 0 ]  
  2. then  
  3.     echo "success"  
  4. elif [ $? -eq 1 ]  
  5. then  
  6.     echo "failed,code is 1"  
  7. else  
  8.     echo "other code"  
  9. fi 

case语句使用方法如下:

  1. name="aa"  
  2. case $name in  
  3.     "aa")  
  4.     echo "name is $name"  
  5.     ;;  
  6.     "")  
  7.     echo "name is empty"  
  8.     ;;  
  9.     "bb")  
  10.     echo "name is $name"  
  11.     ;;  
  12.     *)  
  13.     echo "other name"  
  14.     ;;  
  15. esac 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读