shell的功能
Shell又称命令解释器,它能识别用户输入的各种命令,并传递给操作系统。它的作用类似于Windows操作系统中的命令行,但是,Shell的功能远比命令行强大的多。在UNIX或者localhost中,Shell既是用户交互的界面,也是控制系统的脚本语言。
shell的基本组成元素
声明:声明用哪个命令解释器来解释并执行当前脚本文件中的语句,一般写的解释器为bash。例:#!/bin/bash
命令:可执行语句,实现程序的功能。
注释:说明某些代码的功能,通过在代码中增加注释可以提高程序的可读性。
shell的常用指令
常用的内部命令有:echo、eval、exec、export、read、shift、exit
- echo
echo选项参数 | 说明 |
---|---|
-n | 不换行输出 |
-e | 解析转义字符 |
-
eval
命令格式:eval args
功能:当shell程序执行到eval语句时,shell读入参数args,并将它们组合成一个新的命令,然后执
行。 -
exec
exec命令能够在不创建新的子进程的前提下,转去执行指定的命令,当指定的命令执行完毕后,该
进程就终止了。
export设置或者显示环境变量 -
read命令可从标准输入读取字符串等信息,传给shell程序内部定义的变量。
read选项参数 | 解析 |
---|---|
-p | 设置提示信息 |
-t | 设置输入等待时间,单位默认为秒 |
-a | 把读取的数据赋值给数组 array,从下标 0 开始。 |
-e | 在获取用户输入的时候,对功能键进行编码转换,不会直接显式功能键对应的字符。 |
-n | 读取 num 个字符,而不是整行字符 |
-s | 静默模式(Silent mode),不会在屏幕上显示输入的字符。当输入密码和其它确认信息的时候,这是很有必要的。 |
- shift
在程序中每使用一次shift语句,都会使所有的位置参数依次向左移动一个位置,并使位置参 数$#减1,直到减到0为止 - exit
退出shell程序。在exit之后可以有选择地指定一个数作为返回状态
shell脚本的运行方式
-
bash ./filename.sh
产生子进程,再运行,使用当前指定的bash shell去运行 -
./filename.sh
产生子进程,再运行,使用脚本里面指定的shell去运行。使用该种方式执行需要x
权限 -
source ./filename.sh
source命令是一个shell内部命令,其功能是读取指定的shell程序文件,并
且依次执行其中的所有的语句,并没有创建新的子shell进程,所以脚本里面所有创建的变量都会保存到
当前的shell里面 -
. filename.sh
和source一样,也是使用当前进程执行