Linux Shell编程

来源:互联网 发布:中设软件 编辑:程序博客网 时间:2024/06/16 06:53

shell简介

  • shell本身是一个用C语言编写的程序,即是一种命令语言,又是一种程序设计语言
    命令语言:交互式的解释并执行用户输入的命令。
    程序设计语言:它有变量定义和流程控制以及函数。
  • Unix/linux上几种常见的shell有bash、sh、ksh、csh。其中bash是linux下默认的shell,sh是Unix标准默认的shell。
    注意:bash完全兼容sh, 即sh的脚本可以不加修改的在bash上运行

第一个shell脚本

用文本编辑器编辑如下代码,

#!/bin/bashecho "Hello World!"

推荐命名为scriptName.sh(非必需),为scriptName.sh增加执行权限并运行,

chmod +x scriptName.sh./scriptName.sh//终端输出Hello World!

注意:#!为特定的标记,告诉系统该脚本由什么解释器解释执行。

shell变量

  • 变量定义
    varName=value
    例如:
url="www.baidu.com"num=10

注意:变量定义的等号两边均不能有空格,变量名的命名要以字母或下划线开头,中间不能有空格,且不能和shell中的关键字相同。

  • 变量使用
    $varName
    ${varName}
    例如:
DOG="dog"echo "There is a $DOG"#输出There is a dogecho "There are many $DOGs"#输出There are many echo "There are many ${DOG}s"#输出There are many dogs

注意:第二条回显之所以没有输入dogs,是因为没有定义DOSs变量,默认为空,故在这种地方一定要加{},一般推荐加{}。

  • 特殊变量
    shell解释器定义了一些特殊变量,这些变量不用定义可直接使用,拥有特殊含义。
变量 含义 $0 当前脚本文件名 $n n为整数,表示传递给脚本或函数的第n个参数 $# 传递给脚本或函数的参数的个数 $* 传递给脚本或函数的所有参数 $@ 传递给脚本或函数的所有参数,当参数以双引号引起来时和$*略有不同 $? 上一条语句的执行返回结果,一般成功返回0,失败返回其他 $$ 当前shell进程的进程ID

$*和$@的区别:

shell运算符

shell支持很多运算符,包括算术运算符、关系运算符、布尔运算符、字符串运算符和文件运算符。但原生shell不支持算术运算,可以用命令来实现,例如expr。expr是表达式计算工具,用expr可以完成表达式求值。

例如:计算3+5

val=`expr 3 + 5`

注意

  • expr 3 + 5 作为一个完整的表达式要被` `引起来,注意这不是单引号,是数字键1左边的那个建上的符号。

  • 数字与运算符之间要有空格, 3+5这样写是不对的。

下面列表说明:

运算符 说明 举例 + 加法 expr $a + $b - 减法 expr 7 - 5 * 乘法 expr 9 \* 3 \ 整除 expr 8 \ 2 % 取模 expr 7 % 3 = 赋值 a=$b

详见:linux shell 教程

0 0
原创粉丝点击