标签:shell
一、shell简介
------------
用户
|
终端 (相当于bash的接口)
|
shell(壳) bash 大多数Linux系统默认的shell环境
|
内核
用户通过终端输入命令,提交给shell,再调用内核中的系统功能对命令进行执行。shell环境是用户使用linux的桥梁,它使得用户能与操作系统的核心功能进行交互。
shell的两种执行命令的方式:
交互式:解释执行用户的命令,用户输入一条命令,shell就执行一条。
批处理:用户事先写一个shell脚本(scripts),其中有很多命令,让shell一次把这些命令执行完,而不用一条一条的敲命令。
编写脚本
打开文本编辑器,新建一个文件test.sh
#!/bin/bash --#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,/bin/bash是bash的解释器命令路径
echo "what is your name?"
echo "my name is lily."
echo "hi lily!"
执行脚本
chmod +x ./test.sh --脚本在当前目录,也可以用绝对路径
./test.sh
也可以直接使用 sh ./test.sh
二、shell变量
------------
1.定义变量
变量名=“变量内容”
如:myname=“lily”
注意事项:
1)变量名和等号之间以及等号和变量内容之间不能有空格
2)变量名只能包含数字、字母和下划线,且必须以字母开头
3)变量名不能使用bash里的关键字
2.使用变量
$变量名 --获取变量内容
如:echo $myname
或 echo ${myname}
echo "myname is $myname"
3.变量类型
shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行。
局部变量:局部变量是在脚本或命令中定义的,仅在当前shel实例中有效,其他shell启动的程序不能访问局部变量。
环境变量:所有程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
特殊变量:除了数字、字母和下划线,还包含其他字符的变量成为特殊变量,如下:
$0 当前脚本
$n 传递给脚本或函数的参数,n是一个数字,表示第几个参数,如,第一个参数是$1,第二个参数是$2
$# 传递给脚本或函数的参数个数
$* 传递给脚本或函数的所有参数
$@ 传递给脚本或函数的所有参数
$? 上个命令的退出状态,上一条命令执行成功则返回0,失败返回非0的数值
$$ 当前shell进程id。对于shell脚本而言就是这个脚本所在的进程id
--举例说明:
vim var.sh --新建一个shell脚本
#!/bin/bash
echo "文件名:$0"
echo "参数1:$1"
echo "参数2:$2"
echo "总参数个数:$#"
echo "所有参数:$*"
echo "所以参数:$@"
echo "上个命令的执行情况:$?"
echo "当前shell进程id:$$"
sh var.sh a b c --执行脚本,并在后面接上参数
文件名:var.sh
参数1:a
参数2:b
总参数个数:3
所有参数:a b c
所以参数:a b c
上个命令的执行情况:0 --0代表上个命令执行成功,非零表示上个命令执行失败
当前shell进程id:4982
4.read命令
read命令将接收到的输入的数据放入一个标准变量中。
echo -n “enter your name:" --参数-n的作用是不换行,echo默认是换行的
read name
echo "hello $name"
read -p "enter your name: " name --参数-p允许在read命令行中直接指定一个提示
echo "hello $name"
标签:shell
原文地址:http://13450661.blog.51cto.com/13440661/1982884