首页 > 编程语言 >sh编程(第十章)

sh编程(第十章)

时间:2022-09-18 15:44:38浏览次数:122  
标签:Shell 函数 编程 第十章 echo 运算符 命令 sh

目录

相关链接

程序设计语言

程序设计语言的种类千差万别。但是,一般说来,基本成分不外4种。

  • 数据成分。用以描述程序中所涉及的数据。
  • 运算成分。用以描述程序中所包含的运算。
  • 控制成分。用以表达程序中的控制构造。
  • 传输成分。用以表达程序中数据的传输。

具体来说:

  1. 数据类型(描述了数据在内存存储区中占据的空间大小)
  2. 常量
  3. 变量
  4. 运算符(+ - * / ** ^ | & ! ++ ?: 增强运算符等)
  5. 表达式(一般有赋值、算术、逻辑、条件、强制类型转换等类型)
  6. 标识符(常量名、变量名、函数名、类名等。)
  7. 关键字(具有特定含义的标识符,不能用来作变更名、函数名等)
  8. 基本控制结构(顺序结构、选择结构、循环结构)
  9. 函数
  10. 面向对象程序语言需实现封装、继承和多态

shell脚本

在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它接收用户命令,然后调用相应的应用程序。

Shell Script ,即Shell脚本,就是把原本需要在命令行输入的命令组成预先放入到一个文件中,方便一次性执行。很多脚本语言实际上已经超过简单的用户命令序列的指令,还可以编写更复杂的程序。

Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言(shell脚本语言)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。

脚本语言 -> 解释器 -> 解释执行

编译语言 -> 编译器 -> 编译链接

知识点归纳

sh脚本与C

  • sh
    • 是解释程序,逐行读取脚本并直接执行。若不是可执行内置命令,则会复刻一个子程序来执行。
    • 只有字符串类型
    • 第一个可执行语句是程序的入口
  • C
    • 必须先链接到一个二进制可执行文件,然后通过主sh的子进程运行二进制可执行文件。
    • 有多种数据类型
    • 必须要有main函数

如何编写sh

  • 命令行参数、内置变量、特殊字符

  • sh语句包括所有linux命令,以及I/O重定向

  • 命令

    • 内置命令

      • .file
      • break
      • cd
      • ……
    • Linux命令

      • echo
      • expr
      • awk
      • ……
    • 控制语句

      • if-else-fi
      • for
      • while
      • until-do
      • case
      • continue/break
    • 重定向

    • 嵌入文档

    • sh函数:必须要任何可执行语句之前定义sh脚本中的所有函数

    • 通配符:最有用的通配符是*,可扩展到当前目录中的所有文件

问题与解决思路

下面这段程序的return 语句为什么写两对括号?

  1 myadd(){
  2     echo "该函数计算两个数字的和"
  3     echo "请输入第一个数字"
  4     read a
  5     echo "请输入第二个数字"
  6     read b
  7     return $(($a+$b))
  8 }
  9 myadd
 10 echo "两个数字的和是$?"

双小括号 (( )) 是一个运算,作用如下:
+ ((exp))结构,扩展并计算一个算术表达式的值。若是逻辑判断,表达式exp为真则为1,假则为0。
+ 只要括号中的运算符、表达式符合C语言运算规则,都可用在\(((exp))中。作不同进制运算时,输出结果全都自动转化成了十进制。 \+ 括号内支持多个表达式用逗号分开。比如可以直接使用for((i=0;i<5;i++)),if ((\)i<5))等

shell中各种括号的作用

标签:Shell,函数,编程,第十章,echo,运算符,命令,sh
From: https://www.cnblogs.com/kenneth2012/p/16704892.html

相关文章