概念
- Shell(也称为命令行界面或终端)是一种通过文本输入和输出进行交互的计算机用户界面。它允许用户通过输入命令来执行操作、运行程序和管理系统,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。
发展历程
- 贝尔实验室在1971年为UNIX开发了第一个Shell,称为V6 Shell,与 Multics 上的类似,这个 shell (/bin/sh) 在内核外运行,是一个独立的用户程序。
- 1977年,Stephen Bourne 在 AT&T 贝尔实验室 为 V7 UNIX 研发出 Bourne shell,并且作为实用的 shell 保留至今(在某些情况下,作为默认 shell)。Bourne Shell是基于另一种叫做Algol的语言,主要用于系统任务管理的自动化。
- 20世纪70年代末,于加州大学Berkeley分校作为2BSD UNIX 一部分开发出了C Shell,C Shell提供了许多Bourne Shell不具备的功能,此外还提供了如作业控制、命令行历史、别名等功能。
定义变量
- shell支持以下三种定义变量的方式:
variable=value
variable='value'
variable="value"
注意,这里“=”两边不能出现空格。举例:
1. url=https://juejin.cn/
1. name='C语言中文网'
1. author="严长生"
Shell命令替换
- Shell 命令替换是指将命令的输出结果赋值给某个变量,Shell 中有两种方式可以完成命令替换,一种是反引号
` `,一种是$()。
variable=`commands`
variable=$(commands)
variable 是变量名,commands 是要执行的命令。commands 可以只有一个命令,也可以有多个命令,多个命令之间以分号;分隔。
原则上来说,两种方法是等价的,但是一般多使用$(),此外,$()支持嵌套,而` `不行。
Shell if else语句
- Shell中的if语句和c++,Java中的if语句有所不同,基本语法如下:
if condition
then
command1
command2
......
commandN
fi
command是需要判断的条件,可以是字符串、变量、数值等。
- 如果有两个分支,用if else语句。
if condition
then
command1
else
command2
fi
如果condition成立,执行command1,否则执行command2。