Shell 学习笔记

来源:互联网 发布:js正则过滤表情符号 编辑:程序博客网 时间:2024/06/12 00:06
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Unix/Linux系统的关键。

可以说,shell使用的熟练程度反映了用户对Unix/Linux使用的熟练程度。

注意:单独地学习 Shell 是没有意义的,请先了解 Unix/Linux 基础。

Shell有两种执行命令的方式:
  • 交互式(Interactive):解释执行用户的命令,用户输入一条命令,Shell就解释执行一条。
  • 批处理(Batch):用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令。

Shell脚本和编程语言很相似,也有变量和流程控制语句,但Shell脚本是解释执行的,不需要编译,Shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到Shell提示符下执行。

Shell初学者请注意,在平常应用中,建议不要用 root 帐号运行 Shell 。作为普通用户,不管您有意还是无意,都无法破坏系统;但如果是 root,那就不同了,只要敲几个字母,就可能导致灾难性后果。

具体使用学习可以参照Shell基础

1.echo,输出,printf,类似C语言函数,但是有稍微不一样的地方

2. read, 从标准读入

3.定义变量,直接使用赋值方式(Var="XXX" 等号两边不要有空格),引用变量使用$(${Var})最好使用中括号将其括起来;可以使用readonly修饰变量;

4.设置环境变量 unset set

5.$符号可以引用参数,而#则是注释,但是#结合字符串或者是数据变量,那么,能够等到其长度,使用$的形式有"${var:-、+、=、?"string"}",表示对变量的不同情境的不同操作

6. 命令替换``, 即将命令放入变量也是可以的,(DATE = `date`)

7.支持算术、关系、布尔、字符串、文件测试 运算符

8.逻辑控制形式:

if[ expression ] then else fi;

 if[ expression ] then elif[ expression ] then else fi;

for... in... do... done

while[ expression ] do ... done

同理也是支持continue/break

[ expression ]必须要两边有空格

9.函数

定义: functionName(){},可以有返回值或者是没有返回值,类似js

引用:functionName p1 p2...

删除:unset .f functionName

10.流控制符号, >,>>, <,特殊的输出方向是/dev/null

11.shell 脚本文件可嵌入其他shell脚本文件,用法:

. filename.sh

例如:

subscript.sh的内容如下:

#!/bin/bash

url="http://www.xxx.com"


test.sh的内容如下

#!/bin/bash

../subscript.sh

echo$url






0 0
原创粉丝点击