shell与编程范式 | 青训营笔记

161 阅读2分钟

shell是什么

感性理解:外壳、输入终端

A unix shell is both a command interpreter and a programming language.

image.png

Shell是一种脚本语言,可以在命令行下直接运行。它提供了一组命令和语法,用于操作文件、文本和进程等操作。在本讲义中,我们将介绍Shell的基本语法,包括变量、运算、语句、函数等方面,并提供编程实例。

变量

变量是Shell中最基本的元素之一,它用于存储值或字符串。在Shell中,变量可以使用等号(=)来赋值,例如:

shellCopy code
NAME="John"

上述代码将变量NAME的值设置为"John"。

在Shell中,变量名通常是大写字母,但并不是必需的。变量可以使用$符号来引用它们的值,例如:

shellCopy code
echo $NAME

上述代码将输出变量NAME的值,即"John"。

运算

Shell支持基本的数学运算,包括加、减、乘和除。这些运算可以使用表达式和运算符来执行,例如:

shellCopy code
echo $((1 + 2))
echo $((3 * 4))

上述代码将分别输出3和12。

在Shell中,还支持比较运算符,例如:

  • -eq:等于
  • -ne:不等于
  • -gt:大于
  • -lt:小于
  • -ge:大于等于
  • -le:小于等于

这些运算符可以用于条件语句中,例如:

shellCopy code
if [ $((1 + 2)) -eq 3 ]; then
  echo "1 + 2 equals 3"
fi

上述代码将输出"1 + 2 equals 3"。

语句

Shell中有许多语句,用于控制程序流程。以下是一些常见的语句:

if语句

if语句用于根据条件执行不同的代码块,例如:

shellCopy code
if [ $((1 + 2)) -eq 3 ]; then
  echo "1 + 2 equals 3"
else
  echo "1 + 2 does not equal 3"
fi

上述代码将输出"1 + 2 equals 3"。

for语句

for语句用于循环执行代码块,例如:

shellCopy code
for i in 1 2 3; do
  echo $i
done

上述代码将分别输出1、2和3。

while语句

while语句用于根据条件循环执行代码块,例如:

shellCopy code
i=1
while [ $i -le 3 ]; do
  echo $i
  i=$((i + 1))
done

上述代码将分别输出1、2和3。

函数

Shell支持函数,可以将一段代码封装在函数中并在需要时调用它。以下是一个示例函数:

shellCopy code
greeting() {
  echo "Hello, $1!"
}

greeting "John"

上述代码定义了一个名为greeting的函数,它输出"Hello, 1!",其中1!",其中1表示函数调用时传递的第一个参数。然后,我们调用该函数,并将"John"作为参数传递给它,输出结果为"Hello, John!"。

编程实例

下面是一个完整的Shell脚本示例,用于计算两个数的和并输出结果:

shellCopy code
#!/bin/bash

# 定义变量
num1=10
num2=20

# 计算和
sum=$((num1 + num2))

# 输出结果
echo "The sum of $num1 and $num2 is $sum."

上述代码定义了两个变量num1和num2,分别赋值为10和20。然后,它计算了这两个数的和,并将结果存储在变量sum中。最后,它使用echo命令输出了结果。

保存该脚本并使用bash命令运行它,输出结果如下:

pythonCopy code
The sum of 10 and 20 is 30.